yanapiri 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1fe130d3d1f138c56f6f44ae8c802099d6e026fcae21792bc3c0b321dba2e8c5
4
- data.tar.gz: a568ee5e8394e412368635c7b1f06ae5ed18dddc5a3e3ee38d167168b24dea32
3
+ metadata.gz: 8c3750b408bb03028e0efa632c8de502167385eda4ae602d103705fc2add1c1f
4
+ data.tar.gz: eca42b1ea12f2821e41827e99a06fdd3b488ce98d889f57c9e78c2ccfedc6fb1
5
5
  SHA512:
6
- metadata.gz: 915ef5bf4fbd9ed4e28e45ee5edf8251cc606338a333bb6d54c6253e8ea3a450617879f5f8d35143511f92094ad24b0010de0425eb4ed3011b9eb95233026e2f
7
- data.tar.gz: dc2bd1e9e076d9483fe23f8f91959ac371c28aec7644bb90c4cb50b0ac910fc0282b3373c7d4b84666f807043b904adf030f24acf462a67d12b2cad02d405361
6
+ metadata.gz: bfe1c080a749dfefaf05c5b6f1fb1800279bf408b6dbae10032336cd3277cd0d8f14ae8d65c2ba4a730aa183517832a483120d14ce838915d54a0124086f7e86
7
+ data.tar.gz: 330443e3dfca79d3f63df3ca17d5b27e4c2482934b3bbf1caa3a1afed2f19244ef6e099dcd3a08f95032df25282c9c40041921e94449c0b6062b2aacab3ee8f7
data/.grenrc CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
- "dataSource": "prs",
2
+ "dataSource": "issues",
3
3
  "onlyMilestones": false,
4
4
  "groupBy": false,
5
+ "template": {
6
+ "issue": "- [{{text}}]({{url}}) {{name}}"
7
+ },
5
8
  "changelogFilename": "CHANGELOG.md"
6
9
  }
data/lib/yanapiri/bot.rb CHANGED
@@ -23,12 +23,16 @@ class Bot
23
23
  end
24
24
  end
25
25
 
26
- def preparar_correccion!(entrega, commit_base)
27
- entrega.crear_branch! 'base', commit_base
28
- entrega.crear_branch! 'entrega', 'master'
29
- TransformacionWollok.transformar!(entrega, self) if TransformacionWollok.aplica?(entrega)
30
- publicar_cambios! entrega
31
- crear_pull_request! entrega
26
+ def preparar_correccion!(entrega)
27
+ if not entrega.hay_cambios?
28
+ crear_issue_advertencia! entrega
29
+ else
30
+ entrega.crear_branch! 'base', entrega.commit_base
31
+ entrega.crear_branch! 'entrega', 'master'
32
+ TransformacionWollok.transformar!(entrega, self) if TransformacionWollok.aplica?(entrega)
33
+ publicar_cambios! entrega
34
+ crear_pull_request! entrega
35
+ end
32
36
  end
33
37
 
34
38
  def preparar_entrega!(nombre, repo_base)
@@ -76,7 +80,15 @@ class Bot
76
80
  end
77
81
 
78
82
  def crear_pull_request!(entrega)
79
- @gh_client.create_pull_request("#{@organization}/#{entrega.id}", "base", "entrega", "Corrección", entrega.mensaje_pull_request) rescue nil
83
+ @gh_client.create_pull_request(gh_repo_para(entrega), "base", "entrega", "Corrección", entrega.mensaje_pull_request) rescue nil
84
+ end
85
+
86
+ def crear_issue_advertencia!(entrega)
87
+ @gh_client.create_issue(gh_repo_para(entrega), "Corrección", "¡Hola! Te estamos cargando esta _issue_ porque no subiste ningún cambio al repositorio y ya pasó la fecha de entrega. :pensive:\n\nPor favor, si tuviste algún problema acercate a hablar con tus docentes." )
88
+ end
89
+
90
+ def gh_repo_para(entrega)
91
+ "#{@organization}/#{entrega.id}"
80
92
  end
81
93
 
82
94
  def publicar_repo!(nombre, repo)
@@ -1,10 +1,11 @@
1
1
  class Entrega
2
- attr_reader :id, :fecha_limite, :repo
2
+ attr_reader :id, :fecha_limite, :repo, :commit_base
3
3
 
4
- def initialize(base_path, id, fecha_limite = Time.now)
4
+ def initialize(base_path, id, commit_base, fecha_limite = Time.now)
5
5
  @base_path = base_path
6
6
  @id = id
7
7
  @fecha_limite = fecha_limite
8
+ @commit_base = commit_base || '--max-parents=0 HEAD'
8
9
  @repo = Git.open "#{@base_path}/#{@id}"
9
10
  end
10
11
 
@@ -43,6 +44,10 @@ class Entrega
43
44
  @repo.chdir { File.exist? nombre }
44
45
  end
45
46
 
47
+ def hay_cambios?
48
+ @repo.log.between(@commit_base, 'master').any?
49
+ end
50
+
46
51
  private
47
52
 
48
53
  def formato_humano(fecha)
@@ -1,3 +1,3 @@
1
1
  module Yanapiri
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
data/lib/yanapiri.rb CHANGED
@@ -17,7 +17,6 @@ module Yanapiri
17
17
  include Thor::Actions
18
18
  include ActionView::Helpers::DateHelper
19
19
 
20
- class_option :verbose, {type: :boolean, aliases: :v}
21
20
  class_option :orga, {aliases: :o}
22
21
  class_option :github_token
23
22
 
@@ -98,12 +97,13 @@ module Yanapiri
98
97
  option :fecha_limite, {default: Time.now.to_s, aliases: :l}
99
98
  def corregir(nombre)
100
99
  foreach_entrega(nombre) do |entrega|
101
- @bot.preparar_correccion! entrega, options.commit_base
100
+ @bot.preparar_correccion! entrega
102
101
  end
103
102
  end
104
103
 
105
104
  desc 'ultimo_commit [ENTREGA]', 'Muestra la fecha del último commit de cada repositorio e indica si se pasó de la fecha límite'
106
105
  option :fecha_limite, {default: Time.now.to_s, aliases: :l}
106
+ option :commit_base, {aliases: :b}
107
107
  option :solo_excedidos, {type: :boolean}
108
108
  def ultimo_commit(nombre)
109
109
  print_table entregas(nombre)
@@ -115,7 +115,13 @@ module Yanapiri
115
115
 
116
116
  no_commands do
117
117
  def fila_ultimo_commit(entrega)
118
- fila = [entrega.autor, "hace #{time_ago_in_words entrega.fecha}", entrega.fecha.strftime("%d/%m/%Y %H:%M"), if entrega.fuera_de_termino? then '(Fuera de término)' else '' end]
118
+ fecha = if entrega.hay_cambios?
119
+ "hace #{time_ago_in_words entrega.fecha} (#{entrega.fecha.strftime "%d/%m/%Y %H:%M"})"
120
+ else
121
+ '(no hay cambios)'
122
+ end
123
+
124
+ fila = [entrega.autor, fecha, if entrega.fuera_de_termino? then '---> Fuera de término' else '' end]
119
125
  color = if entrega.fuera_de_termino? then :red else :white end
120
126
  fila.map {|s| set_color s, color }
121
127
  end
@@ -126,18 +132,16 @@ module Yanapiri
126
132
  repos = Dir.glob('*').select {|f| File.directory? f}.sort
127
133
 
128
134
  for repo in repos
129
- log "Trabajando con #{repo}..."
130
135
  Dir.chdir "#{working_dir}/#{repo}" do
131
136
  yield repo, working_dir
132
137
  end
133
- log "==============================\n"
134
138
  end
135
139
  end
136
140
  end
137
141
 
138
142
  def foreach_entrega(nombre)
139
143
  foreach_repo(nombre) do |repo, base_path|
140
- yield Entrega.new base_path, repo, Time.parse(options.fecha_limite)
144
+ yield Entrega.new base_path, repo, options.commit_base, Time.parse(options.fecha_limite)
141
145
  end
142
146
  end
143
147
 
@@ -147,10 +151,6 @@ module Yanapiri
147
151
  resultado
148
152
  end
149
153
 
150
- def log(mensaje)
151
- puts mensaje if options[:verbose]
152
- end
153
-
154
154
  def global_config_file
155
155
  File.expand_path "~/#{config_file_name}"
156
156
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yanapiri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Federico Aloi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-07 00:00:00.000000000 Z
11
+ date: 2019-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor