lita-teamcity 0.1.0 → 0.1.1
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/README.md +1 -0
- data/lib/lita-teamcity.rb +2 -0
- data/lib/lita/handlers/teamcity.rb +56 -7
- data/lita-teamcity.gemspec +2 -2
- data/spec/lita/handlers/teamcity_spec.rb +9 -1
- data/spec/spec_helper.rb +1 -0
- data/templates/build.erb +1 -0
- data/templates/build.slack.erb +1 -0
- data/templates/builds.erb +3 -0
- data/templates/builds.slack.erb +3 -0
- data/templates/projects.erb +3 -0
- data/templates/projects.slack.erb +3 -0
- metadata +10 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 825977afff6d95b5bb0064838ca64fef02c2672e
|
4
|
+
data.tar.gz: 0b471817db0ca61db06b18ec13b1f3d55846c45c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aadbbffa07e5f4570b51ee814c5c8d36bbced791c8023eebfaff6e14f42e90d0e45dec4f4f48e92b5b7874221bded686246bd78f6a53654c37dd71fe596efbdd
|
7
|
+
data.tar.gz: fae00de3073293d1c24506614426bbb1d7040f9b741596656a001bdc7cce2955034feb3abf24e6869d0be01db0f85120d3005fe8930797a274792d311d724dc5
|
data/README.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
[](https://travis-ci.org/jetthoughts/lita-teamcity)
|
4
4
|
[](https://coveralls.io/r/jetthoughts/lita-teamcity)
|
5
|
+
[](https://badge.fury.io/rb/lita-teamcity)
|
5
6
|
|
6
7
|
Communicate with TeamCity via Chat
|
7
8
|
|
data/lib/lita-teamcity.rb
CHANGED
@@ -7,17 +7,66 @@ module Lita
|
|
7
7
|
config :user, type: String
|
8
8
|
config :password, type: String
|
9
9
|
|
10
|
-
route(/^
|
10
|
+
route(/^teamcity\s+projects(\s+(.+))?/, :projects, command: true, help: { "teamcity projects [KEY]" => "List of TeamCity projects." })
|
11
|
+
route(/^teamcity\s+builds(\s+(.+))?/, :builds, command: true, help: { "teamcity builds [KEY]" => "List of TeamCity builds." })
|
12
|
+
route(/^teamcity\s+build\s+(.+)/, :build, command: true, help: { "teamcity build <buildtype_id> [branch_name]" => "Trigger a build for buildtype_id." })
|
11
13
|
|
12
|
-
def
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
def projects(response)
|
15
|
+
message = {
|
16
|
+
title: 'Projects',
|
17
|
+
text: render_template('projects', projects: client.projects),
|
18
|
+
}
|
19
|
+
|
20
|
+
reply(response, message)
|
21
|
+
end
|
22
|
+
|
23
|
+
def builds(response)
|
24
|
+
records = client.builds
|
25
|
+
Lita.logger.debug(records)
|
26
|
+
message = {
|
27
|
+
title: 'Builds',
|
28
|
+
text: render_template('builds', builds: records),
|
29
|
+
}
|
30
|
+
reply(response, message)
|
31
|
+
end
|
32
|
+
|
33
|
+
def build(response)
|
34
|
+
Lita.logger.debug(response.matches)
|
35
|
+
Lita.logger.debug(response.args)
|
36
|
+
Lita.logger.debug(response.room.metadata)
|
37
|
+
options = {
|
38
|
+
comment: {text: "Triggered by #{response.user.name} in room #{response.room.name} via chatbot"},
|
39
|
+
}
|
40
|
+
options[:branchName] = response.args[2] if response.args[2]
|
41
|
+
|
42
|
+
result = client.create_buildqueue(response.args[1], options)
|
43
|
+
Lita.logger.debug(result)
|
44
|
+
|
45
|
+
message = {
|
46
|
+
title: 'Done!',
|
47
|
+
text: render_template('build', build: result),
|
48
|
+
}
|
49
|
+
reply(response, message)
|
17
50
|
end
|
18
51
|
|
52
|
+
private
|
19
53
|
def client
|
20
|
-
@_client ||= TeamCity::Client.new(endpoint: config.endpoint, http_user: config.user, http_password: config.password)
|
54
|
+
@_client ||= ::TeamCity::Client.new(endpoint: config.endpoint, http_user: config.user, http_password: config.password)
|
55
|
+
end
|
56
|
+
|
57
|
+
def reply(response, message)
|
58
|
+
Lita.logger.info(message[:text])
|
59
|
+
case robot.config.robot.adapter
|
60
|
+
when :slack
|
61
|
+
_message = {
|
62
|
+
mrkdwn: true,
|
63
|
+
color: '#36a64f',
|
64
|
+
}.merge(message)
|
65
|
+
attachment = Lita::Adapters::Slack::Attachment.new(message[:text], _message)
|
66
|
+
robot.chat_service.send_attachment(response.room, attachment)
|
67
|
+
else
|
68
|
+
response.reply(message[:title], message[:text])
|
69
|
+
end
|
21
70
|
end
|
22
71
|
|
23
72
|
Lita.register_handler(self)
|
data/lita-teamcity.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-teamcity"
|
3
|
-
spec.version = "0.1.
|
3
|
+
spec.version = "0.1.1"
|
4
4
|
spec.authors = ["Michael Nikitochkin"]
|
5
5
|
spec.email = ["miry.sof@gmail.com"]
|
6
6
|
spec.description = "Communicate with TeamCity REST API"
|
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.require_paths = ["lib"]
|
16
16
|
|
17
17
|
spec.add_runtime_dependency "lita", ">= 4.7"
|
18
|
-
spec.add_runtime_dependency "teamcity", ">= 1.3.
|
18
|
+
spec.add_runtime_dependency "teamcity", ">= 1.3.2"
|
19
19
|
|
20
20
|
spec.add_development_dependency "bundler", "~> 1.3"
|
21
21
|
spec.add_development_dependency "pry-byebug"
|
@@ -1,5 +1,13 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe Lita::Handlers::Teamcity, lita_handler: true do
|
4
|
-
it { is_expected.to
|
4
|
+
it { is_expected.to route_command("teamcity projects").to(:projects) }
|
5
|
+
|
6
|
+
describe "#projects" do
|
7
|
+
it "list of active projects" do
|
8
|
+
send_command("teamcity projects")
|
9
|
+
|
10
|
+
expect(replies.first).to eq("boom!")
|
11
|
+
end
|
12
|
+
end
|
5
13
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,6 +8,7 @@ SimpleCov.start { add_filter "/spec/" }
|
|
8
8
|
|
9
9
|
require "lita-teamcity"
|
10
10
|
require "lita/rspec"
|
11
|
+
require "teamcity"
|
11
12
|
|
12
13
|
# A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
|
13
14
|
# was generated with Lita 4, the compatibility mode should be left disabled.
|
data/templates/build.erb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Triggered <%= @build.buildType.name %> for <%= @build.branchName %>
|
@@ -0,0 +1 @@
|
|
1
|
+
Triggered <<%= @build.buildType.webUrl %>|<%= @build.buildType.name %>> for <%= @build.branchName %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-teamcity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Nikitochkin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.3.
|
33
|
+
version: 1.3.2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.3.
|
40
|
+
version: 1.3.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,6 +156,12 @@ files:
|
|
156
156
|
- spec/lita/handlers/teamcity_spec.rb
|
157
157
|
- spec/spec_helper.rb
|
158
158
|
- templates/.gitkeep
|
159
|
+
- templates/build.erb
|
160
|
+
- templates/build.slack.erb
|
161
|
+
- templates/builds.erb
|
162
|
+
- templates/builds.slack.erb
|
163
|
+
- templates/projects.erb
|
164
|
+
- templates/projects.slack.erb
|
159
165
|
homepage: https://github.com/jetthoughts/lita-teamcity
|
160
166
|
licenses:
|
161
167
|
- GPL-3.0
|
@@ -184,4 +190,3 @@ summary: Communicate with TeamCity REST API
|
|
184
190
|
test_files:
|
185
191
|
- spec/lita/handlers/teamcity_spec.rb
|
186
192
|
- spec/spec_helper.rb
|
187
|
-
has_rdoc:
|