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 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