lita-deploy-tracker 0.1.0 → 0.1.2

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
  SHA1:
3
- metadata.gz: 6c8e2b92a53043ded04a3c2afe1e18ad701dcaf9
4
- data.tar.gz: a1abf95b70c69e6d80ee726392d893f0384d7f72
3
+ metadata.gz: 841f0b4bdc4f66f987ff4a4bff41157e4820ac59
4
+ data.tar.gz: 0a357a49a32d8904eb50c353675d8af011d26d12
5
5
  SHA512:
6
- metadata.gz: 95255efb65ddc5338cb45a95873780c132da94172d5e7f71d1f02c9bcdb2d2fe126ae5ca2a1f0f860ca34b85683934e09f12302aa4259818721db6b653ba33f3
7
- data.tar.gz: 71bbebb176aa9655985c25496ddc61a894c542541c39f94c36334abb86c9e7c6207bd309a2a45d8c6b3e4ef3a37fbd83b3849c04e91a89fc73e0096a315e6682
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")
@@ -1,9 +1,10 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-deploy-tracker"
3
- spec.version = "0.1.0"
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.0
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: 2015-12-23 00:00:00.000000000 Z
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.4.8
149
+ rubygems_version: 2.5.1
136
150
  signing_key:
137
151
  specification_version: 4
138
152
  summary: A Lita handler to track deploys