prima-twig 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/twig-hotfix +28 -21
- data/bin/twig-pick-issue +33 -4
- data/lib/prima_twig.rb +22 -6
- metadata +4 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7b49a95c43b880947a37b296a3ff8b6be29047e
|
4
|
+
data.tar.gz: 76da46ef24f1ff4ef4e32fb438346b61d26054c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2abbb30d0b36d3b6347b815850ac3cb8da00217558320d9d391621e9d9beaca68edcd9525dbcdcdf4540bebb454810071d2259560a1253f105fc2d8c4042229a
|
7
|
+
data.tar.gz: f4d092aca806c4eb20363fa77358aba72be4df27e62be51a7f48a45211826d418d929c2d10777d096fdb700e3f3e6f750c00b8a8e91a54d0e3f45e18e1c9aae6
|
data/bin/twig-hotfix
CHANGED
@@ -11,7 +11,7 @@ class Hotfix
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def execute! args
|
14
|
-
possible_args = ["start", "
|
14
|
+
possible_args = ["start", "finish"]
|
15
15
|
stop_if args.empty?, [:wrong_args, possible_args]
|
16
16
|
stop_if args.length > 1, [:wrong_args, possible_args]
|
17
17
|
|
@@ -21,7 +21,7 @@ class Hotfix
|
|
21
21
|
case args[0]
|
22
22
|
when "start"
|
23
23
|
start_hotfix!
|
24
|
-
when "
|
24
|
+
when "finish"
|
25
25
|
merge_hotfix!
|
26
26
|
else
|
27
27
|
stop_if true, [:wrong_args, possible_args]
|
@@ -29,35 +29,42 @@ class Hotfix
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def start_hotfix!
|
32
|
-
|
33
|
-
branch_name =
|
32
|
+
|
33
|
+
branch_name = @prima.clean_branch_name(ask('Inserisci il nome del branch (puoi omettere hotfix/): '.cyan))
|
34
|
+
stop_if branch_name.length, 'Devi inserire il nome del branch'
|
35
|
+
branch_name.prepend issue_type + '/' unless branch_name.include? issue_type
|
36
|
+
|
34
37
|
output "Il nome del branch sarà " + branch_name.yellow
|
35
38
|
|
36
39
|
exec_step "git checkout master"
|
40
|
+
exec_step "git pull origin master"
|
37
41
|
exec_step "git checkout -b " + branch_name
|
38
42
|
end
|
39
43
|
|
40
44
|
def merge_hotfix!
|
41
45
|
current_branch_name = @prima.twig.current_branch_name
|
42
46
|
stop_unless (current_branch_name =~ /^hotfix\//), "Non sei su un branch di hotfix, non posso mergiare nulla"
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
47
|
+
|
48
|
+
# Mergia la PR
|
49
|
+
pr = @prima.get_pr
|
50
|
+
stop_unless pr, 'Pull Request not found'
|
51
|
+
@prima.merge_pull_request pr
|
52
|
+
|
53
|
+
output "La Pull Request e' stata mergiata!".green
|
54
|
+
|
55
|
+
# Mergia il branch su dev e pusha
|
56
|
+
exec_step 'git fetch'
|
57
|
+
exec_step 'git checkout dev'
|
58
|
+
exec_step 'git merge origin/dev'
|
49
59
|
exec_step "git merge #{current_branch_name}"
|
50
|
-
|
51
|
-
if
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
exec_step "git checkout dev"
|
59
|
-
exec_step "git push origin dev"
|
60
|
-
end
|
60
|
+
|
61
|
+
exec_step 'git push origin dev' if @prima.yesno 'Vuoi effettuare il push di dev?'.blue
|
62
|
+
|
63
|
+
# Chiude la issue
|
64
|
+
@prima.close_issue(@prima.twig.get_branch_property(current_branch_name, 'issue'))
|
65
|
+
|
66
|
+
# Rimuove il branch remoto
|
67
|
+
exec_step "git push origin :#{current_branch_name}" if @prima.yesno "Vuoi eliminare il branch remoto #{current_branch_name}?".blue
|
61
68
|
end
|
62
69
|
end
|
63
70
|
|
data/bin/twig-pick-issue
CHANGED
@@ -49,12 +49,18 @@ class PickIssue
|
|
49
49
|
issue.pull_request?
|
50
50
|
end
|
51
51
|
|
52
|
-
issue_number = choose_issue
|
53
|
-
|
52
|
+
issue_number = choose_issue issues
|
53
|
+
issue_type = select_issue_type issue_number
|
54
|
+
base_branch_name_default = issue_type == 'hotfix' ? 'master' : 'dev'
|
55
|
+
branch_name = ask('Inserisci il nome del branch (puoi omettere feature/ o hotfix/): '.cyan)
|
56
|
+
if branch_name.length == 0
|
57
|
+
puts 'Devi inserire il nome del branch'.red
|
58
|
+
exit 1
|
59
|
+
end
|
60
|
+
branch_name.prepend issue_type + '/' unless branch_name.include? issue_type
|
54
61
|
branch_name << "-#{issue_number}"
|
55
|
-
branch_name = @prima.clean_branch_name branch_name
|
56
62
|
|
57
|
-
base_branch_name = ask('from which branch?'.cyan) { |q| q.default =
|
63
|
+
base_branch_name = ask('from which branch?'.cyan) { |q| q.default = base_branch_name_default }
|
58
64
|
|
59
65
|
puts "creo branch con nome #{branch_name} partendo da #{base_branch_name}"
|
60
66
|
@prima.rugged.branches.create(branch_name, base_branch_name)
|
@@ -83,6 +89,29 @@ class PickIssue
|
|
83
89
|
end
|
84
90
|
end
|
85
91
|
end
|
92
|
+
|
93
|
+
def select_issue_type(issue_number)
|
94
|
+
has_hotfix_label = @prima.issue_has_label?(issue_number, Prima::LABEL_HOTFIX)
|
95
|
+
|
96
|
+
if has_hotfix_label
|
97
|
+
continue_hotfix = @prima.yesno 'La issue ha la label hotfix, sei sicuro di procedere come hotfix?'.cyan # ask('La issue ha la label hotfix, sei sicuro di procedere come hotfix? (y/n)'.cyan) { |q| q.default = 'y' }
|
98
|
+
issue_type = continue_hotfix ? 'hotfix' : 'feature'
|
99
|
+
else
|
100
|
+
issue_type = choose do |menu|
|
101
|
+
menu.prompt = 'Seleziona se la issue dev\'essere trattata come feature oppure hotfix'.cyan
|
102
|
+
menu.shell = true
|
103
|
+
|
104
|
+
menu.choice('feature') {'feature'}
|
105
|
+
menu.choice('hotfix') {'hotfix'}
|
106
|
+
end
|
107
|
+
|
108
|
+
if issue_type == 'hotfix'
|
109
|
+
puts "Aggiungo la label #{Prima::LABEL_HOTFIX} alla issue".green
|
110
|
+
@prima.update_issue_with_label issue_number, Prima::LABEL_HOTFIX
|
111
|
+
end
|
112
|
+
end
|
113
|
+
issue_type
|
114
|
+
end
|
86
115
|
end
|
87
116
|
|
88
117
|
PickIssue.new.execute!
|
data/lib/prima_twig.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require_relative 'command.rb'
|
2
2
|
require 'twig'
|
3
3
|
require 'octokit'
|
4
|
-
require 'trello'
|
5
4
|
require 'yaml'
|
6
5
|
require 'rugged'
|
7
6
|
require 'highline/import'
|
@@ -9,8 +8,8 @@ require 'highline/import'
|
|
9
8
|
class Prima
|
10
9
|
LABEL_REVIEW='review'
|
11
10
|
LABEL_WIP='wip'
|
11
|
+
LABEL_HOTFIX='hotfix'
|
12
12
|
GITHUB='github'
|
13
|
-
TRELLO='trello'
|
14
13
|
attr_reader :gh, :twig, :config, :rugged
|
15
14
|
|
16
15
|
def initialize
|
@@ -31,10 +30,8 @@ class Prima
|
|
31
30
|
puts 'Progetto non inizializzato'.red
|
32
31
|
puts 'Creazione del file di configurazione'.yellow
|
33
32
|
github_token = ask 'github token: '
|
34
|
-
trello_token = ask 'trello token: '
|
35
33
|
conf = {
|
36
|
-
GITHUB => github_token.to_s
|
37
|
-
TRELLO => trello_token.to_s
|
34
|
+
GITHUB => github_token.to_s
|
38
35
|
}
|
39
36
|
File.open('twig.yml', 'w') { |file|
|
40
37
|
file.write conf.to_yaml
|
@@ -74,8 +71,13 @@ class Prima
|
|
74
71
|
`git config --get remote.origin.url`.split(':').last.chomp.chomp('.git')
|
75
72
|
end
|
76
73
|
|
74
|
+
def repo_user
|
75
|
+
repo_url.chomp.split(':').last.split('/').first
|
76
|
+
end
|
77
|
+
|
77
78
|
def current_branch_ref
|
78
|
-
|
79
|
+
repo = repo_user
|
80
|
+
"#{repo}:#{current_branch_name}"
|
79
81
|
end
|
80
82
|
|
81
83
|
def clean_branch_name(branch_name)
|
@@ -163,6 +165,20 @@ class Prima
|
|
163
165
|
results
|
164
166
|
end
|
165
167
|
|
168
|
+
def merge_pull_request(pr, commit_message='')
|
169
|
+
raise "Invalid Pull Request" unless pr
|
170
|
+
pr_number = pr[:number]
|
171
|
+
@gh.merge_pull_request(repo_name, pr_number, commit_message)
|
172
|
+
end
|
173
|
+
|
174
|
+
def close_issue(issue_number)
|
175
|
+
@gh.close_issue(repo_name, issue_number)
|
176
|
+
end
|
177
|
+
|
178
|
+
def repo_url
|
179
|
+
`git config remote.origin.url`
|
180
|
+
end
|
181
|
+
|
166
182
|
def yesno(prompt = 'Continue?', default = true)
|
167
183
|
a = ''
|
168
184
|
s = default ? '[Y/n]' : '[y/N]'
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prima-twig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matteo Giachino
|
8
8
|
- Antonio Murdaca
|
9
9
|
- Alessandro Nuzzo
|
10
|
+
- Andrea Usuelli
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date: 2015-11-
|
14
|
+
date: 2015-11-19 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: twig
|
@@ -68,20 +69,6 @@ dependencies:
|
|
68
69
|
- - "~>"
|
69
70
|
- !ruby/object:Gem::Version
|
70
71
|
version: '1.6'
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: ruby-trello
|
73
|
-
requirement: !ruby/object:Gem::Requirement
|
74
|
-
requirements:
|
75
|
-
- - "~>"
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '1.1'
|
78
|
-
type: :runtime
|
79
|
-
prerelease: false
|
80
|
-
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
requirements:
|
82
|
-
- - "~>"
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: '1.1'
|
85
72
|
- !ruby/object:Gem::Dependency
|
86
73
|
name: launchy
|
87
74
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,7 +97,7 @@ dependencies:
|
|
110
97
|
- - "~>"
|
111
98
|
- !ruby/object:Gem::Version
|
112
99
|
version: '0.22'
|
113
|
-
description: Our tools to manage git
|
100
|
+
description: Our tools to manage git and github
|
114
101
|
email: matteo.giachino@prima.it
|
115
102
|
executables:
|
116
103
|
- twig-circle
|