lita-bamboo 0.1.1 → 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: f251f089a022a0bda5e84085ab6cb8a553dd0b24
4
- data.tar.gz: a0b9a024d30b1ebd63fcd53548b946763750e5c0
3
+ metadata.gz: 7900de87469633c5def0649c70e87a293b2445d4
4
+ data.tar.gz: 2acfdefa928a86e3326a49677bbb2e1d0b31ec2d
5
5
  SHA512:
6
- metadata.gz: a2d549149f4f4d9e30352297b1fc77c2f0ca8f84858cdb88af5087464da81452921a251e24996949bdd4d3dded6782ccb19f7b8b15ca64dcb1af264c39610cd6
7
- data.tar.gz: 3919b81f37e2d024b3f3f1736818476b55f5cb5a69d5826704b4f444dd291f068429f843478658cfec5fbd9a445b37d6a02082d362b0391805b4057f2ff52e0c
6
+ metadata.gz: 70b21815adf6b3f4405b3d87e66336f9fd23841cce4144a1411021e2e5f543e2df19ea587003e14a1152051abf5a203884e8e1b9f25afa5c18ca2d216072b684
7
+ data.tar.gz: f12dd05405940010d1057375d0b7855ee230a9569e53e263da0509d30d5d51b7d7286dabc16060276c1695481080aa4de14edace946beb30ec3373b4599c8e70
data/CHANGELOG.md ADDED
@@ -0,0 +1,14 @@
1
+ # lita-bamboo Change Log
2
+
3
+ ### v0.1.2
4
+ * list build queue
5
+ * queue plan for build
6
+ * dequeue plan from build queue
7
+
8
+ ### v0.1.1
9
+ * output changes for list plan and projects
10
+
11
+ ### v0.1.0
12
+ * list projects
13
+ * list plans
14
+ * list plan build results
data/README.md CHANGED
@@ -23,3 +23,6 @@ end
23
23
  * bamboo list projects
24
24
  * bamboo list project PROJECT_KEY plans
25
25
  * bamboo list plan PLAN_KEY results limit 2
26
+ * bamboo list queue
27
+ * bamboo queue PLAN_KEY
28
+ * bamboo dequeue BUILD_KEY
@@ -1,4 +1,5 @@
1
1
  require 'json'
2
+ require 'rest-client'
2
3
  module LitaBambooHelper
3
4
  module Plan
4
5
  def list_projects
@@ -64,32 +65,46 @@ module LitaBambooHelper
64
65
  end
65
66
 
66
67
  def queue_plan(plan_id)
67
- url = "#{config.url}/queue/#{plan_id}"
68
+ url = "#{config.url}/queue/#{plan_id}?os_authType=basic"
68
69
  begin
69
- response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :post)
70
+ response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :post, user: config.user, password: config.password)
70
71
  if response.code == 200
71
72
  true
72
73
  else
73
74
  false
74
75
  end
75
76
  rescue Exception=>e
76
- raise "Error to queue paln for build :#{e.message}"
77
+ raise "Error to queue plan #{plan_id} for build :#{e.message}"
78
+ end
79
+ end
80
+
81
+ def dequeue_plan(build_id)
82
+ url = "#{config.url}/queue/#{build_id}?os_authType=basic"
83
+ begin
84
+ response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :delete, user: config.user, password: config.password)
85
+ if response.code == 200
86
+ true
87
+ else
88
+ false
89
+ end
90
+ rescue Exception=>e
91
+ raise "Error to dequeue plan build #{build_id} :#{e.message}"
77
92
  end
78
93
  end
79
94
 
80
95
  def list_queue()
81
- url = "#{config.url}/queue?os_authType=basic"
96
+ url = "#{config.url}/queue.json?os_authType=basic"
82
97
  info = []
83
98
  begin
84
- response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :get)
99
+ response = RestClient::Request.execute(:url => url, :verify_ssl => config.verify_ssl, :method=> :get, user: config.user, password: config.password)
85
100
  json_response = JSON.parse(response)
86
- if json_response['results']['result']
87
- json_response['results']['result'].each do |result|
88
- info << "[#{result['buildResultKey']}] : Successful=#{result['successful']} Finished=#{result['finished']} NotRunYet=#{result['notRunYet']} Start: #{result['prettyBuildStartedTime']} Complete: #{result['prettyBuildCompletedTime']}"
101
+ if json_response['queuedBuilds']['queuedBuild']
102
+ json_response['queuedBuilds']['queuedBuild'].each do |result|
103
+ info << "BuildKey: #{result['buildResultKey']} TrigerReason: #{result['triggerReason']} "
89
104
  end
90
105
  end
91
106
  rescue Exception=>e
92
- raise "Error to list build results :#{e.message}"
107
+ raise "Error to list build queue :#{e.message}"
93
108
  end
94
109
  info
95
110
  end
data/lib/lita-bamboo.rb CHANGED
@@ -4,7 +4,6 @@ Lita.load_locales Dir[File.expand_path(
4
4
  File.join("..", "..", "locales", "*.yml"), __FILE__
5
5
  )]
6
6
 
7
- require "bamboohelper/misc"
8
7
  require "bamboohelper/plans"
9
8
  require "lita/handlers/bamboo"
10
9
  require "lita"
@@ -5,8 +5,9 @@ module Lita
5
5
  namespace 'Bamboo'
6
6
  config :url, required: true, type: String # https://host:port/rest/api/latest
7
7
  config :verify_ssl, required: true, types: [TrueClass, FalseClass], default: false
8
+ config :user, required: true, type: String
9
+ config :password, required: true, type: String
8
10
 
9
- include ::LitaBambooHelper::Misc
10
11
  include ::LitaBambooHelper::Plan
11
12
 
12
13
  route(
@@ -36,6 +37,33 @@ module Lita
36
37
  }
37
38
  )
38
39
 
40
+ route(
41
+ /^bamboo\s+list\s+queue\s*$/,
42
+ :cmd_list_queue,
43
+ command: true,
44
+ help: {
45
+ t('help.cmd_list_queue_key') => t('help.cmd_list_queue_value')
46
+ }
47
+ )
48
+
49
+ route(
50
+ /^bamboo\s+queue\s+(\S+)$/,
51
+ :cmd_queue_plan,
52
+ command: true,
53
+ help: {
54
+ t('help.cmd_queue_plan_key') => t('help.cmd_queue_plan_value')
55
+ }
56
+ )
57
+
58
+ route(
59
+ /^bamboo\s+dequeue\s+(\S+)$/,
60
+ :cmd_dequeue_plan,
61
+ command: true,
62
+ help: {
63
+ t('help.cmd_dequeue_plan_key') => t('help.cmd_dequeue_plan_value')
64
+ }
65
+ )
66
+
39
67
  def cmd_list_projects(response)
40
68
  begin
41
69
  info = list_projects
@@ -66,6 +94,39 @@ module Lita
66
94
  end
67
95
  end
68
96
 
97
+ def cmd_queue_plan(response)
98
+ plan_id = response.matches[0][0]
99
+ begin
100
+ success = queue_plan(plan_id)
101
+ unless success
102
+ response.reply "Failed to queue plan #{plan_id}"
103
+ end
104
+ rescue Exception => e
105
+ response.reply e.message
106
+ end
107
+ end
108
+
109
+ def cmd_dequeue_plan(response)
110
+ build_id = response.matches[0][0]
111
+ begin
112
+ success = dequeue_plan(build_id)
113
+ unless success
114
+ response.reply "Failed to dequeue plan build #{build_id}"
115
+ end
116
+ rescue Exception => e
117
+ response.reply e.message
118
+ end
119
+ end
120
+
121
+ def cmd_list_queue(response)
122
+ begin
123
+ info = list_queue
124
+ response.reply info
125
+ rescue Exception => e
126
+ response.reply e.message
127
+ end
128
+ end
129
+
69
130
  Lita.register_handler(self)
70
131
 
71
132
  end
data/lita-bamboo.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-bamboo"
3
- spec.version = "0.1.1"
3
+ spec.version = "0.1.2"
4
4
  spec.authors = ["Wang, Dawei"]
5
5
  spec.email = ["dwang@entertainment.com"]
6
6
  spec.description = "Bamboo Lita tasks"
data/locales/en.yml CHANGED
@@ -9,3 +9,9 @@ en:
9
9
  cmd_list_project_plans_value: 'List all plans in project'
10
10
  cmd_list_plan_results_key: 'bamboo list plan LAN_KEY results limit LIMIT'
11
11
  cmd_list_plan_results_value: 'List plan build results last LIMIT'
12
+ cmd_list_queue_key: 'bamboo list queue'
13
+ cmd_list_queue_value: 'List what is in current build queue'
14
+ cmd_queue_plan_key: 'bamboo queue PLAN_KEY'
15
+ cmd_queue_plan_value: 'Queue plan for build'
16
+ cmd_dequeue_plan_key: 'bamboo dequeue BUILD_KEY'
17
+ cmd_dequeue_plan_value: 'Dequeue plan from build'
@@ -4,11 +4,16 @@ describe Lita::Handlers::Bamboo, lita_handler: true do
4
4
  before do
5
5
  registry.config.handlers.bamboo.url = 'https://bamboo.entertainment.com/rest/api/latest'
6
6
  registry.config.handlers.bamboo.verify_ssl = false
7
+ registry.config.handlers.bamboo.user = 'dummy'
8
+ registry.config.handlers.bamboo.password = 'pass'
7
9
  end
8
10
  it do
9
11
  is_expected.to route_command('bamboo list project').to(:cmd_list_projects)
10
12
  is_expected.to route_command('bamboo list project AG plans').to(:cmd_list_project_plans)
11
13
  is_expected.to route_command('bamboo list plan AG-FPMWIL results limit 1').to(:cmd_list_plan_results)
14
+ is_expected.to route_command('bamboo list queue').to(:cmd_list_queue)
15
+ is_expected.to route_command('bamboo queue PM-RVMGEMSET').to(:cmd_queue_plan)
16
+ is_expected.to route_command('bamboo dequeue PM-RVMGEMSET-8').to(:cmd_dequeue_plan)
12
17
  end
13
18
 
14
19
  describe '#get all project list' do
@@ -46,4 +51,25 @@ describe Lita::Handlers::Bamboo, lita_handler: true do
46
51
  #expect(replies.last).to match(/repositoryPath/)
47
52
  end
48
53
  end
54
+
55
+ describe '#get build queue' do
56
+ it 'list build queue' do
57
+ send_command('bamboo list queue')
58
+ puts replies.last
59
+ end
60
+ end
61
+
62
+ describe '#queue plan for build' do
63
+ it 'queue plan' do
64
+ send_command('bamboo queue PM-RVMGEMSET')
65
+ puts replies.last
66
+ end
67
+ end
68
+
69
+ describe '#dequeue plan from build' do
70
+ it 'dequeue plan' do
71
+ send_command('bamboo dequeue PORJ-PLAN-8')
72
+ puts replies.last
73
+ end
74
+ end
49
75
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-bamboo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wang, Dawei
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-21 00:00:00.000000000 Z
11
+ date: 2016-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -109,10 +109,10 @@ extra_rdoc_files: []
109
109
  files:
110
110
  - ".gitignore"
111
111
  - ".rspec"
112
+ - CHANGELOG.md
112
113
  - Gemfile
113
114
  - README.md
114
115
  - Rakefile
115
- - lib/bamboohelper/misc.rb
116
116
  - lib/bamboohelper/plans.rb
117
117
  - lib/lita-bamboo.rb
118
118
  - lib/lita/handlers/bamboo.rb
@@ -1,8 +0,0 @@
1
- require 'rest-client'
2
- module LitaBambooHelper
3
- module Misc
4
- def get_request
5
-
6
- end
7
- end #module misc
8
- end#module