lita-deploy-tracker 0.1.0 → 0.1.2
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/lib/lita/handlers/deploy_tracker.rb +119 -2
- data/lita-deploy-tracker.gemspec +3 -1
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 841f0b4bdc4f66f987ff4a4bff41157e4820ac59
|
4
|
+
data.tar.gz: 0a357a49a32d8904eb50c353675d8af011d26d12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff924a6bf480b3e8721010d4bc9f86b470604e5d493fe5a7b7274f2c53e54f351cfe1534ed8847aafbce4fb251554d2554ddca810909a59d0269a68e7b2e1211
|
7
|
+
data.tar.gz: 075001f32e773b3a5e9ae66400f87a2f5104adcf9824a2acf019b7958fbe857f4fc6b928f4aa09721a01469bb70a2b3c231d9b89c93c61af74f8f979c6d670ae
|
@@ -7,10 +7,16 @@ module Lita
|
|
7
7
|
config :user, type: String, required: true
|
8
8
|
config :password, type: String, required: true
|
9
9
|
|
10
|
+
on :loaded, :define_routes
|
11
|
+
|
10
12
|
on :deploy_started, :register_deploy
|
11
13
|
on :deploy_finished, :update_deploy
|
12
14
|
on :deploy_in_progress?, :check_deploy_in_progress
|
13
15
|
|
16
|
+
def define_routes(payload)
|
17
|
+
define_static_routes
|
18
|
+
end
|
19
|
+
|
14
20
|
def register_deploy(payload)
|
15
21
|
db = mongo_client
|
16
22
|
|
@@ -46,13 +52,13 @@ module Lita
|
|
46
52
|
status: payload[:status]
|
47
53
|
})
|
48
54
|
db[:deploys].find().each do |doc|
|
49
|
-
p doc
|
50
55
|
end
|
51
56
|
|
52
57
|
end
|
53
58
|
|
54
59
|
def check_deploy_in_progress(payload)
|
55
60
|
db = mongo_client
|
61
|
+
# db[:deploys].drop
|
56
62
|
|
57
63
|
result = db[:deploys].find({app: payload[:app],
|
58
64
|
area: payload[:area],
|
@@ -60,7 +66,7 @@ module Lita
|
|
60
66
|
status: 'in progress'}).limit(1).count
|
61
67
|
|
62
68
|
if result > 0
|
63
|
-
payload[:msg] = 'Já existe um deploy dessa aplicação sendo'\
|
69
|
+
payload[:msg] = 'Já existe um deploy dessa aplicação sendo '\
|
64
70
|
'executado nessa area. Aguarde ele ser finalizado'
|
65
71
|
robot.trigger(:deploy_aborted, payload)
|
66
72
|
else
|
@@ -69,6 +75,117 @@ module Lita
|
|
69
75
|
|
70
76
|
end
|
71
77
|
|
78
|
+
def get_deploys_in_progress(response)
|
79
|
+
target = response.message.source.room_object
|
80
|
+
db = mongo_client
|
81
|
+
deploys = []
|
82
|
+
result = db[:deploys].find(status: 'in progress')
|
83
|
+
if result.count == 0
|
84
|
+
return response.reply("No deploy in progress")
|
85
|
+
end
|
86
|
+
|
87
|
+
result.each do |doc|
|
88
|
+
deploys << Adapters::Slack::Attachment.new(
|
89
|
+
"",
|
90
|
+
title: "Deploy #{doc[:app]} in progress",
|
91
|
+
fields: [
|
92
|
+
{
|
93
|
+
title: "App",
|
94
|
+
value: doc[:app],
|
95
|
+
short: true
|
96
|
+
},
|
97
|
+
{
|
98
|
+
title: "Área",
|
99
|
+
value: doc[:area],
|
100
|
+
short: true
|
101
|
+
},
|
102
|
+
{
|
103
|
+
title: "Ambiente",
|
104
|
+
value: doc[:env],
|
105
|
+
short: true
|
106
|
+
},
|
107
|
+
{
|
108
|
+
title: "tag",
|
109
|
+
value: doc[:tag],
|
110
|
+
short: true
|
111
|
+
},
|
112
|
+
{
|
113
|
+
title: "responsible",
|
114
|
+
value: doc[:responsible],
|
115
|
+
short: true
|
116
|
+
}
|
117
|
+
]
|
118
|
+
)
|
119
|
+
end
|
120
|
+
return robot.chat_service.send_attachments(target, deploys)
|
121
|
+
end
|
122
|
+
|
123
|
+
def get_last_deploys(response)
|
124
|
+
target = response.message.source.room_object
|
125
|
+
app = response.args[3]
|
126
|
+
area = response.args[4]
|
127
|
+
db = mongo_client
|
128
|
+
|
129
|
+
result = db[:deploys].find({app: app, area: area}).limit(5)
|
130
|
+
if result.count == 0
|
131
|
+
return response.reply("No previous deployments of the app #{app} #{area}")
|
132
|
+
end
|
133
|
+
|
134
|
+
deploys = []
|
135
|
+
result.each do |doc|
|
136
|
+
deploys << Adapters::Slack::Attachment.new(
|
137
|
+
"",
|
138
|
+
title: "Deploy #{doc[:app]}",
|
139
|
+
fields: [
|
140
|
+
{
|
141
|
+
title: "App",
|
142
|
+
value: doc[:app],
|
143
|
+
short: true
|
144
|
+
},
|
145
|
+
{
|
146
|
+
title: "Área",
|
147
|
+
value: doc[:area],
|
148
|
+
short: true
|
149
|
+
},
|
150
|
+
{
|
151
|
+
title: "Ambiente",
|
152
|
+
value: doc[:env],
|
153
|
+
short: true
|
154
|
+
},
|
155
|
+
{
|
156
|
+
title: "tag",
|
157
|
+
value: doc[:tag],
|
158
|
+
short: true
|
159
|
+
},
|
160
|
+
{
|
161
|
+
title: "responsible",
|
162
|
+
value: doc[:responsible],
|
163
|
+
short: true
|
164
|
+
}
|
165
|
+
]
|
166
|
+
)
|
167
|
+
end
|
168
|
+
return robot.chat_service.send_attachments(target, deploys)
|
169
|
+
end
|
170
|
+
|
171
|
+
|
172
|
+
private
|
173
|
+
|
174
|
+
def define_static_routes
|
175
|
+
self.class.route(
|
176
|
+
%r{^show\s+deploy\s+in\s+progress},
|
177
|
+
:get_deploys_in_progress,
|
178
|
+
command: false,
|
179
|
+
help: { "show deploy in progress" => "Show all deploys being executed"}
|
180
|
+
)
|
181
|
+
self.class.route(
|
182
|
+
%r{^show\s+last\s+deploys\s+from\s+(.+)\s+(.+)},
|
183
|
+
:get_last_deploys,
|
184
|
+
command: false,
|
185
|
+
help: { "show last deploys from APP AREA" => "Show the last 5 deploys from the application area"}
|
186
|
+
)
|
187
|
+
end
|
188
|
+
|
72
189
|
def mongo_client
|
73
190
|
# client = Mongo::Client.new("mongodb://#{config.user}:#{config.password}@#{config.host}:27017/lita-deploy-tracker")
|
74
191
|
client = Mongo::Client.new("mongodb://#{config.host}:27017/lita-deploy-tracker")
|
data/lita-deploy-tracker.gemspec
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-deploy-tracker"
|
3
|
-
spec.version = "0.1.
|
3
|
+
spec.version = "0.1.2"
|
4
4
|
spec.authors = ["Alexandre Gomes"]
|
5
5
|
spec.email = ["alejdg@outlook.com.br"]
|
6
6
|
spec.summary = "A Lita handler to track deploys"
|
7
|
+
spec.description = "A Lita handler to track deploys"
|
7
8
|
spec.homepage = "https://github.com/alejdg/lita-deploy-tracker.git"
|
8
9
|
spec.metadata = { "lita_plugin_type" => "handler" }
|
9
10
|
|
@@ -13,6 +14,7 @@ Gem::Specification.new do |spec|
|
|
13
14
|
spec.require_paths = ["lib"]
|
14
15
|
|
15
16
|
spec.add_runtime_dependency "lita", ">= 4.6"
|
17
|
+
spec.add_runtime_dependency "mongo", "~> 2.1"
|
16
18
|
|
17
19
|
spec.add_development_dependency "bundler", "~> 1.3"
|
18
20
|
spec.add_development_dependency "pry-byebug"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-deploy-tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Gomes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.6'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mongo
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.1'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,7 +108,7 @@ dependencies:
|
|
94
108
|
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: 3.0.0
|
97
|
-
description:
|
111
|
+
description: A Lita handler to track deploys
|
98
112
|
email:
|
99
113
|
- alejdg@outlook.com.br
|
100
114
|
executables: []
|
@@ -132,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
146
|
version: '0'
|
133
147
|
requirements: []
|
134
148
|
rubyforge_project:
|
135
|
-
rubygems_version: 2.
|
149
|
+
rubygems_version: 2.5.1
|
136
150
|
signing_key:
|
137
151
|
specification_version: 4
|
138
152
|
summary: A Lita handler to track deploys
|