drone-builds 0.4.2 → 0.5.0

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: b24969d066869cf37e383d5acd18a67857288c61
4
- data.tar.gz: 5767033a6359544991a6fd5ae48adb2aab1a3071
3
+ metadata.gz: 9b85ca4c703cc852436c2bac78064a995fe60629
4
+ data.tar.gz: 8726b4e18acbdefb8e3d7993ac6b8a049b39b5cd
5
5
  SHA512:
6
- metadata.gz: 941e95027f96e9312664f68e3153bdb52b0eee08b6489636f14ba8243227c0f968201852cceb376746d321611aab4b87be201f763bfb0e76385b40735f15bd08
7
- data.tar.gz: a7b8c3e88e588656eac91071311ab5f6333e497ea51166364d2da7a03303bf05ea23d2985c5fdc6beb77fafc994f33b036bff6a3db44115d00a2e59148fd057c
6
+ metadata.gz: b4593727c980993a85c3aed7c05cce59f305ed4cdeee86a0c9b9ef328f42e222935f505aee1988fcfe5407afe7f4facb9aeb7eba6d1365bc5407d85c746611b6
7
+ data.tar.gz: 3e676b7ae5a4e03a1e1b0bb0930765f2961472c9b5fa01348602c0a31ae343f538fdce892cfbdeb57e0f9062bb2130cfe2d76cad13e053f7b022b0a1041173ca
data/README.md CHANGED
@@ -25,7 +25,9 @@ DRONE_NAME=repo-name
25
25
  ```
26
26
  drone-builds commands:
27
27
  drone-builds help [COMMAND] # Describe available commands or one specific command
28
+ drone-builds kill # kill a build
28
29
  drone-builds list # list last builds
30
+ drone-builds restart # restart a build
29
31
  drone-builds show # show a build
30
32
  drone-builds version # version used
31
33
  ```
data/drone-builds.gemspec CHANGED
@@ -30,4 +30,5 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'bundler', '~> 1'
31
31
  spec.add_development_dependency 'rake', '~> 12'
32
32
  spec.add_development_dependency 'rspec', '~> 3'
33
+ spec.add_development_dependency 'pry', '~> 0'
33
34
  end
@@ -11,6 +11,8 @@ class Drone::Builds::Cli < Thor
11
11
  map 'l' => :list
12
12
  map 's' => :show
13
13
  map 'v' => :version
14
+ map 'r' => :restart
15
+ map 'k' => :kill
14
16
 
15
17
  desc 'list', 'list last builds'
16
18
  method_option :limit, type: :numeric, default: LIMIT, aliases: '-l', desc: 'number of builds shown'
@@ -44,6 +46,16 @@ class Drone::Builds::Cli < Thor
44
46
  end
45
47
  end
46
48
 
49
+ desc 'restart', 'restart a build'
50
+ def restart(id = nil)
51
+ puts self.class.client.restart(id)
52
+ end
53
+
54
+ desc 'kill', 'kill a build'
55
+ def kill(id = nil)
56
+ puts self.class.client.kill(id)
57
+ end
58
+
47
59
  desc 'version', 'version used'
48
60
  def version
49
61
  puts Drone::Builds::VERSION
@@ -1,5 +1,5 @@
1
1
  module Drone
2
2
  class Builds
3
- VERSION = '0.4.2'.freeze
3
+ VERSION = '0.5.0'.freeze
4
4
  end
5
5
  end
data/lib/drone/builds.rb CHANGED
@@ -34,6 +34,14 @@ module Drone
34
34
  end
35
35
  end
36
36
 
37
+ def kill(id)
38
+ delete_api(job_url(id))
39
+ end
40
+
41
+ def restart(id)
42
+ post_api(build_url(id))
43
+ end
44
+
37
45
  private
38
46
 
39
47
  def base_url
@@ -48,6 +56,14 @@ module Drone
48
56
  "#{base_url}/repos/#{owner}/#{name}/logs/#{id}/#{job_id}"
49
57
  end
50
58
 
59
+ def build_url(id)
60
+ "#{base_url}/repos/#{owner}/#{name}/builds/#{id}"
61
+ end
62
+
63
+ def job_url(id)
64
+ "#{base_url}/repos/#{owner}/#{name}/builds/#{id}/#{job_id}"
65
+ end
66
+
51
67
  def stream_url(id)
52
68
  "#{base_url}/stream/#{owner}/#{name}/#{id}/#{job_id}"
53
69
  end
@@ -56,6 +72,14 @@ module Drone
56
72
  "?access_token=#{token}"
57
73
  end
58
74
 
75
+ def access_token_args
76
+ "access_token=#{token}"
77
+ end
78
+
79
+ def access_token_hash
80
+ { access_token: token }
81
+ end
82
+
59
83
  def full_url(url)
60
84
  "#{url}#{access_token_param}"
61
85
  end
@@ -80,6 +104,14 @@ module Drone
80
104
  open(full_url(url)).read
81
105
  end
82
106
 
107
+ def post_api(url)
108
+ parse_response(Net::HTTP.new(URI(url).host).post(URI(url).path + access_token_param, ""))
109
+ end
110
+
111
+ def delete_api(url)
112
+ parse_response(Net::HTTP.new(URI(url).host).delete(URI(url).path + access_token_param))
113
+ end
114
+
83
115
  def clean_stream_data(data)
84
116
  lines = data.lines.grep(/^data:/).map { |l| l.gsub(/^data:/, '') }
85
117
  lines.map(&:strip).compact.join("\n")
@@ -100,5 +132,14 @@ module Drone
100
132
  false
101
133
  end
102
134
  end
135
+
136
+
137
+ def parse_response(response)
138
+ if response.code[0] == "2" # 200 / 202 / ?
139
+ "#{response.code}: #{response.message}"
140
+ else
141
+ "#{response.code}: #{response.body}"
142
+ end
143
+ end
103
144
  end
104
145
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drone-builds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-26 00:00:00.000000000 Z
11
+ date: 2017-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  description: List builds, print realtime output, view previous outputs, filter outputs
126
140
  email:
127
141
  - dorian@doma.io