yanapiri 0.4.4 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -0
- data/lib/yanapiri/bot.rb +10 -5
- data/lib/yanapiri/entrega.rb +23 -1
- data/lib/yanapiri/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7117c01c45a52bbab55772c4aadc3c2dc94eb1a23e72a836592ae2afd2d486e
|
4
|
+
data.tar.gz: 23cf9d929a7892058ee2db5ec1109adeaa20aa5c87a219d2d6c65cd71b95262f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fc9e139a62e676955ea79c62c92efb6ba85275f46cd9d0b959ebdc448b9d48b79885754ab12e098f11fc5d99c23e6e21fd019beb0244d2a7d433ff09fa9fcb6
|
7
|
+
data.tar.gz: 35cf05a828a454c3b0f0a4fa3d14d08b435f7a0209f4294e7a8c638c1824bab42f68b6ecc3ecfe6b562e69041cbe72bbb081932e3de7dd5e63750d82a8b8ccbe
|
data/README.md
CHANGED
@@ -36,6 +36,14 @@ yanapiri clonar entrega-1
|
|
36
36
|
yanapiri corregir entrega-1 --commit-base 326336a8ba771611 --fecha-limite "2019-05-01 23:59:59"
|
37
37
|
```
|
38
38
|
|
39
|
+
Otra opción posible, para cuando el commit base no es el mismo para todas las entregas, es especificarlo mediante un índice (con base 1). Por ejemplo, esto tomará como base al tercer commit que tenga el repositorio:
|
40
|
+
|
41
|
+
```
|
42
|
+
yanapiri corregir entrega-1 --commit-base index:3 --fecha-limite "2019-05-01 23:59:59"
|
43
|
+
```
|
44
|
+
|
45
|
+
|
46
|
+
|
39
47
|
### Trabajando con más de una organización
|
40
48
|
|
41
49
|
Yanapiri soporta tres formas de configurar la organización:
|
data/lib/yanapiri/bot.rb
CHANGED
@@ -28,11 +28,16 @@ module Yanapiri
|
|
28
28
|
if not entrega.hay_cambios?
|
29
29
|
crear_issue_advertencia! entrega
|
30
30
|
else
|
31
|
-
entrega.
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
if entrega.ya_preparada?
|
32
|
+
entrega.actualizar!
|
33
|
+
publicar_cambios! entrega
|
34
|
+
else
|
35
|
+
entrega.crear_branch_base!
|
36
|
+
entrega.crear_branch_entrega!
|
37
|
+
transformaciones.select {|t| t.aplica? entrega}.each {|t| t.transformar! entrega, self}
|
38
|
+
publicar_cambios! entrega
|
39
|
+
crear_pull_request! entrega
|
40
|
+
end
|
36
41
|
end
|
37
42
|
end
|
38
43
|
|
data/lib/yanapiri/entrega.rb
CHANGED
@@ -6,9 +6,9 @@ module Yanapiri
|
|
6
6
|
def initialize(repo_path, commit_base = nil, fecha_limite = nil, modo_estricto = false)
|
7
7
|
@id = File.basename repo_path
|
8
8
|
@fecha_limite = fecha_limite || Time.now + 1.second
|
9
|
-
@commit_base = commit_base || '--max-parents=0 HEAD'
|
10
9
|
@modo = (modo_estricto ? ModoEstricto : ModoRelajado).new self
|
11
10
|
@repo = Git.open repo_path
|
11
|
+
@commit_base = parse_commit_base commit_base
|
12
12
|
end
|
13
13
|
|
14
14
|
def fuera_de_termino?
|
@@ -45,6 +45,15 @@ module Yanapiri
|
|
45
45
|
crear_branch! 'base', commit_base
|
46
46
|
end
|
47
47
|
|
48
|
+
def actualizar!
|
49
|
+
repo.checkout 'entrega'
|
50
|
+
repo.merge commit_entrega, nil
|
51
|
+
end
|
52
|
+
|
53
|
+
def ya_preparada?
|
54
|
+
repo.is_local_branch? 'entrega'
|
55
|
+
end
|
56
|
+
|
48
57
|
def to_s
|
49
58
|
string = "entrega de @#{autor}, "
|
50
59
|
string << if hay_cambios? then "modificada por última vez #{formato_humano fecha}" else "sin cambios" end
|
@@ -63,6 +72,19 @@ module Yanapiri
|
|
63
72
|
@repo.branch(nombre).checkout
|
64
73
|
end
|
65
74
|
|
75
|
+
def parse_commit_base(commit_base)
|
76
|
+
if not commit_base
|
77
|
+
'--max-parents=0 HEAD'
|
78
|
+
elsif commit_base.start_with? 'index'
|
79
|
+
requested = commit_base.split(':').last.to_i
|
80
|
+
index = [@repo.log.size - requested, 0].max
|
81
|
+
@repo.log[index].sha
|
82
|
+
else
|
83
|
+
commit_base
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
|
66
88
|
class ModoCorreccion
|
67
89
|
delegate_missing_to :@entrega
|
68
90
|
|
data/lib/yanapiri/version.rb
CHANGED
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.
|
4
|
+
version: 0.5.0
|
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
|
11
|
+
date: 2019-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -213,7 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: '0'
|
215
215
|
requirements: []
|
216
|
-
rubygems_version: 3.0.
|
216
|
+
rubygems_version: 3.0.4
|
217
217
|
signing_key:
|
218
218
|
specification_version: 4
|
219
219
|
summary: Ayudante para administrar entregas via GitHub Classroom.
|