prima-twig 0.5.0 → 0.5.26
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 +5 -5
- data/bin/twig-build +2000 -0
- data/bin/twig-deploy +126 -89
- data/bin/twig-feature +632 -698
- data/bin/twig-update-ami +197 -0
- data/lib/command.rb +37 -24
- data/lib/prima_aws_client.rb +494 -0
- data/lib/prima_twig.rb +25 -6
- metadata +174 -27
data/lib/prima_twig.rb
CHANGED
@@ -4,7 +4,8 @@ require 'octokit'
|
|
4
4
|
require 'yaml'
|
5
5
|
require 'rugged'
|
6
6
|
require 'highline/import'
|
7
|
-
require 'aws-sdk'
|
7
|
+
require 'aws-sdk-core'
|
8
|
+
require 'rubyflare'
|
8
9
|
|
9
10
|
class Prima
|
10
11
|
LABEL_REVIEW='review'
|
@@ -12,14 +13,16 @@ class Prima
|
|
12
13
|
LABEL_HOTFIX='hotfix'
|
13
14
|
LABEL_NEXT_RELEASE='next release'
|
14
15
|
LABEL_IN_STAGING='in staging'
|
15
|
-
CONFIG_KEYS=['github', 'mandrill', '
|
16
|
+
CONFIG_KEYS=['github', 'mandrill', 'sparkpost', 'cloudflare_email', 'cloudflare_apikey', 'aws_username', 'aws_password', 'prima_apikey']
|
16
17
|
attr_reader :gh, :twig, :config, :rugged, :aws
|
17
18
|
|
18
19
|
def initialize
|
19
20
|
@twig = Twig.new(:read_options => true, :max_days_old => 30)
|
20
21
|
unless has_config?
|
21
22
|
if File.exist?('../prima/twig.yml')
|
22
|
-
|
23
|
+
`cp ../prima/twig.yml .`
|
24
|
+
elsif File.exist?('/tmp/twig.yml')
|
25
|
+
`cp /tmp/twig.yml .`
|
23
26
|
else
|
24
27
|
generate_config
|
25
28
|
end
|
@@ -81,8 +84,7 @@ class Prima
|
|
81
84
|
def create_clients
|
82
85
|
@gh = Octokit::Client.new(:access_token => @config['github'])
|
83
86
|
Aws.config.update({
|
84
|
-
region: 'eu-west-1'
|
85
|
-
credentials: Aws::Credentials.new(@config['aws_key_id'], @config['aws_key_secret']),
|
87
|
+
region: 'eu-west-1'
|
86
88
|
})
|
87
89
|
end
|
88
90
|
|
@@ -129,6 +131,18 @@ class Prima
|
|
129
131
|
branch_name.downcase
|
130
132
|
end
|
131
133
|
|
134
|
+
def repo_has_modified_files?
|
135
|
+
modified = false
|
136
|
+
@rugged.status do |file, status_data|
|
137
|
+
if status_data.first != :ignored
|
138
|
+
puts "#{file}: #{status_data.inspect}"
|
139
|
+
modified = true
|
140
|
+
break
|
141
|
+
end
|
142
|
+
end
|
143
|
+
modified
|
144
|
+
end
|
145
|
+
|
132
146
|
# proxy di tutti i metodi a rugged
|
133
147
|
def method_missing(method)
|
134
148
|
@rugged.send method
|
@@ -200,7 +214,12 @@ class Prima
|
|
200
214
|
end
|
201
215
|
|
202
216
|
def assign_issue_to_me(issue)
|
203
|
-
|
217
|
+
detailed_issue = get_issue issue
|
218
|
+
assignees = [user_login]
|
219
|
+
detailed_issue.assignees.each do |assignee|
|
220
|
+
assignees << assignee.login
|
221
|
+
end
|
222
|
+
@gh.update_issue('primait/board', issue, :assignees => assignees)
|
204
223
|
end
|
205
224
|
|
206
225
|
def assign_pull_request_to_me(pr_number)
|
metadata
CHANGED
@@ -1,46 +1,147 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prima-twig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matteo Giachino
|
8
8
|
- Antonio Murdaca
|
9
9
|
- Alessandro Nuzzo
|
10
10
|
- Andrea Usuelli
|
11
|
+
- Simone Quaini
|
12
|
+
- Eugenio Laghi
|
13
|
+
- Giuseppe D'Anna
|
11
14
|
autorequire:
|
12
15
|
bindir: bin
|
13
16
|
cert_chain: []
|
14
|
-
date:
|
17
|
+
date: 2020-05-12 00:00:00.000000000 Z
|
15
18
|
dependencies:
|
16
19
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
20
|
+
name: aws-sdk-autoscaling
|
18
21
|
requirement: !ruby/object:Gem::Requirement
|
19
22
|
requirements:
|
20
23
|
- - "~>"
|
21
24
|
- !ruby/object:Gem::Version
|
22
|
-
version: '1
|
25
|
+
version: '1'
|
23
26
|
type: :runtime
|
24
27
|
prerelease: false
|
25
28
|
version_requirements: !ruby/object:Gem::Requirement
|
26
29
|
requirements:
|
27
30
|
- - "~>"
|
28
31
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1
|
32
|
+
version: '1'
|
30
33
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
34
|
+
name: aws-sdk-batch
|
32
35
|
requirement: !ruby/object:Gem::Requirement
|
33
36
|
requirements:
|
34
37
|
- - "~>"
|
35
38
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
39
|
+
version: '1'
|
37
40
|
type: :runtime
|
38
41
|
prerelease: false
|
39
42
|
version_requirements: !ruby/object:Gem::Requirement
|
40
43
|
requirements:
|
41
44
|
- - "~>"
|
42
45
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
46
|
+
version: '1'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: aws-sdk-cloudformation
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: aws-sdk-cloudfront
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1'
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: aws-sdk-ec2
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '1'
|
82
|
+
type: :runtime
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '1'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: aws-sdk-ecs
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '1'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '1'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: aws-sdk-elasticloadbalancingv2
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '1'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: aws-sdk-s3
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '1'
|
124
|
+
type: :runtime
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '1'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: aws-sdk-core
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '3'
|
138
|
+
type: :runtime
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '3'
|
44
145
|
- !ruby/object:Gem::Dependency
|
45
146
|
name: colorize
|
46
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,19 +185,33 @@ dependencies:
|
|
84
185
|
- !ruby/object:Gem::Version
|
85
186
|
version: '2.0'
|
86
187
|
- !ruby/object:Gem::Dependency
|
87
|
-
name:
|
188
|
+
name: mail
|
88
189
|
requirement: !ruby/object:Gem::Requirement
|
89
190
|
requirements:
|
90
191
|
- - "~>"
|
91
192
|
- !ruby/object:Gem::Version
|
92
|
-
version: '
|
193
|
+
version: '2.6'
|
93
194
|
type: :runtime
|
94
195
|
prerelease: false
|
95
196
|
version_requirements: !ruby/object:Gem::Requirement
|
96
197
|
requirements:
|
97
198
|
- - "~>"
|
98
199
|
- !ruby/object:Gem::Version
|
99
|
-
version: '
|
200
|
+
version: '2.6'
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
name: octokit
|
203
|
+
requirement: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - "~>"
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '3.0'
|
208
|
+
type: :runtime
|
209
|
+
prerelease: false
|
210
|
+
version_requirements: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
212
|
+
- - "~>"
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '3.0'
|
100
215
|
- !ruby/object:Gem::Dependency
|
101
216
|
name: redcarpet
|
102
217
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,54 +227,87 @@ dependencies:
|
|
112
227
|
- !ruby/object:Gem::Version
|
113
228
|
version: '3.3'
|
114
229
|
- !ruby/object:Gem::Dependency
|
115
|
-
name:
|
230
|
+
name: redis
|
116
231
|
requirement: !ruby/object:Gem::Requirement
|
117
232
|
requirements:
|
118
233
|
- - "~>"
|
119
234
|
- !ruby/object:Gem::Version
|
120
|
-
version: '
|
235
|
+
version: '4.0'
|
121
236
|
type: :runtime
|
122
237
|
prerelease: false
|
123
238
|
version_requirements: !ruby/object:Gem::Requirement
|
124
239
|
requirements:
|
125
240
|
- - "~>"
|
126
241
|
- !ruby/object:Gem::Version
|
127
|
-
version: '
|
242
|
+
version: '4.0'
|
128
243
|
- !ruby/object:Gem::Dependency
|
129
|
-
name:
|
244
|
+
name: rubyflare
|
130
245
|
requirement: !ruby/object:Gem::Requirement
|
131
246
|
requirements:
|
132
247
|
- - "~>"
|
133
248
|
- !ruby/object:Gem::Version
|
134
|
-
version: '
|
249
|
+
version: '0'
|
135
250
|
type: :runtime
|
136
251
|
prerelease: false
|
137
252
|
version_requirements: !ruby/object:Gem::Requirement
|
138
253
|
requirements:
|
139
254
|
- - "~>"
|
140
255
|
- !ruby/object:Gem::Version
|
141
|
-
version: '
|
256
|
+
version: '0'
|
257
|
+
- !ruby/object:Gem::Dependency
|
258
|
+
name: rugged
|
259
|
+
requirement: !ruby/object:Gem::Requirement
|
260
|
+
requirements:
|
261
|
+
- - "~>"
|
262
|
+
- !ruby/object:Gem::Version
|
263
|
+
version: '0.22'
|
264
|
+
type: :runtime
|
265
|
+
prerelease: false
|
266
|
+
version_requirements: !ruby/object:Gem::Requirement
|
267
|
+
requirements:
|
268
|
+
- - "~>"
|
269
|
+
- !ruby/object:Gem::Version
|
270
|
+
version: '0.22'
|
271
|
+
- !ruby/object:Gem::Dependency
|
272
|
+
name: twig
|
273
|
+
requirement: !ruby/object:Gem::Requirement
|
274
|
+
requirements:
|
275
|
+
- - "~>"
|
276
|
+
- !ruby/object:Gem::Version
|
277
|
+
version: '1.7'
|
278
|
+
type: :runtime
|
279
|
+
prerelease: false
|
280
|
+
version_requirements: !ruby/object:Gem::Requirement
|
281
|
+
requirements:
|
282
|
+
- - "~>"
|
283
|
+
- !ruby/object:Gem::Version
|
284
|
+
version: '1.7'
|
142
285
|
description: Our tools to manage git and github
|
143
286
|
email: matteo.giachino@prima.it
|
144
287
|
executables:
|
145
|
-
- twig-
|
146
|
-
- twig-review
|
288
|
+
- twig-build
|
147
289
|
- twig-circle
|
148
|
-
- twig-pick-issue
|
149
|
-
- twig-hotfix
|
150
290
|
- twig-deploy
|
151
291
|
- twig-feature
|
292
|
+
- twig-hotfix
|
293
|
+
- twig-open-pr
|
294
|
+
- twig-pick-issue
|
295
|
+
- twig-review
|
296
|
+
- twig-update-ami
|
152
297
|
extensions: []
|
153
298
|
extra_rdoc_files: []
|
154
299
|
files:
|
155
|
-
- bin/twig-
|
156
|
-
- bin/twig-review
|
300
|
+
- bin/twig-build
|
157
301
|
- bin/twig-circle
|
158
|
-
- bin/twig-pick-issue
|
159
|
-
- bin/twig-hotfix
|
160
302
|
- bin/twig-deploy
|
161
303
|
- bin/twig-feature
|
304
|
+
- bin/twig-hotfix
|
305
|
+
- bin/twig-open-pr
|
306
|
+
- bin/twig-pick-issue
|
307
|
+
- bin/twig-review
|
308
|
+
- bin/twig-update-ami
|
162
309
|
- lib/command.rb
|
310
|
+
- lib/prima_aws_client.rb
|
163
311
|
- lib/prima_twig.rb
|
164
312
|
homepage: http://rubygems.org/gems/prima-twig
|
165
313
|
licenses:
|
@@ -180,8 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
328
|
- !ruby/object:Gem::Version
|
181
329
|
version: '0'
|
182
330
|
requirements: []
|
183
|
-
|
184
|
-
rubygems_version: 2.0.14.1
|
331
|
+
rubygems_version: 3.0.1
|
185
332
|
signing_key:
|
186
333
|
specification_version: 4
|
187
334
|
summary: The Prima twig toolbelt
|