jenkins2-api 0.0.1 → 0.0.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: db1b6afbb7366e426d3c28baace37f5f52d06a39
4
- data.tar.gz: f3ae3a37d294dc1d153cb941fd4efa89113128c2
3
+ metadata.gz: 62981c6fd8f5b6edc958d228aba2bde9369e9e70
4
+ data.tar.gz: a2104e72d23d95e642f82ed01edf1e1460495e86
5
5
  SHA512:
6
- metadata.gz: 00350209e9c82864c1f2f3d04a60021599de65cf5d183b4be36c3efeeb62bdad9884c851f69924fccc13e7079d6406b12677eca381de157ca8e4b7f43a885d06
7
- data.tar.gz: 10dfe56f5fd4359d7b409526d3b350c6293a0950f102f38507bdbd174e257b1502d1dc00ca38aecc7aebce73f4a5b81c24978fdf3ad5870a88a6c45b26d54e13
6
+ metadata.gz: ef141b8bd26a04b302f41b502cb20bf1aac69269d1cd77729ab75cb39106170ca486d29a45599a951b3c91383daebcb18ce21b7fb27e5ef55b3d6cbe26154add
7
+ data.tar.gz: 801d517e3c65ef1bc7deae04c7052f23d491f371d26ca1233733efd094ec36e9c36df920fb2be96c05f8da140ee9e0b8fdc13e18d97d0673f69400a9ffa68fbf
@@ -1,6 +1,11 @@
1
1
  require 'net/http'
2
2
  require 'json'
3
3
 
4
+ require_relative './endpoints/artifact'
5
+ require_relative './endpoints/build'
6
+ require_relative './endpoints/job'
7
+ require_relative './endpoints/node'
8
+
4
9
  module Jenkins2API
5
10
  class Client
6
11
  def initialize(**options)
@@ -13,34 +18,22 @@ module Jenkins2API
13
18
  end
14
19
  end
15
20
 
16
- def latest_build_for(name)
17
- api_request(:get, "/job/#{name}/lastBuild")
18
- end
19
-
20
- def list_jobs
21
- api_request(:get, "")['jobs']
21
+ def job
22
+ @job ||= Job.new(self)
22
23
  end
23
24
 
24
- def nodes
25
- api_request(:get, "/computer")
25
+ def build
26
+ @build ||= Build.new(self)
26
27
  end
27
28
 
28
- def get_full_log_lines(name, build_id)
29
- api_request(:get, "/job/#{name}/#{build_id}/logText/progressiveText", :raw).split("\r\n")
29
+ def artifact
30
+ @artifact ||= Artifact.new(self)
30
31
  end
31
32
 
32
- def get_artifact_for(name, build_id, artifact)
33
- api_request(:get, "/job/#{name}/#{build_id}/artifact/#{artifact['relativePath']}", :raw)
34
- end
35
-
36
- def get_build_slave_name(name, build_id)
37
- log = get_full_log_lines(name, build_id)
38
- relevant_line = log.select { |line| line.match(/^Running on /) }.first
39
-
40
- relevant_line.match(/^Running on (.*) in \//)[1]
33
+ def node
34
+ @node ||= Node.new(self)
41
35
  end
42
36
 
43
- private
44
37
  def api_request(method, path, response_type = :json, **opts)
45
38
  response_type = :json unless [:json, :raw].include?(response_type)
46
39
 
@@ -0,0 +1,15 @@
1
+ module Jenkins2API
2
+ class Artifact
3
+ def initialize(client)
4
+ @client = client
5
+ end
6
+
7
+ def all(name, build_id)
8
+ @client.build.get(name)['artifacts']
9
+ end
10
+
11
+ def get(name, build_id, artifact)
12
+ @client.api_request(:get, "/job/#{name}/#{build_id}/artifact/#{artifact['relativePath']}", :raw)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,30 @@
1
+ module Jenkins2API
2
+ class Build
3
+ def initialize(client)
4
+ @client = client
5
+ end
6
+
7
+ def get(job_name, build_id)
8
+ @client.api_request(:get, "/job/#{job_name}/#{build_id}")
9
+ end
10
+
11
+ def latest(name)
12
+ @client.api_request(:get, "/job/#{name}/lastBuild")
13
+ end
14
+
15
+ def test_results(name, build_id)
16
+ @client.api_request(:get, "/job/#{name}/#{build_id}/testReport")
17
+ end
18
+
19
+ def logtext_lines(name, build_id)
20
+ @client.api_request(:get, "/job/#{name}/#{build_id}/logText/progressiveText", :raw).split("\r\n")
21
+ end
22
+
23
+ def slave_name(name, build_id)
24
+ log = logtext_lines(name, build_id)
25
+ relevant_line = log.select { |line| line.match(/^Running on /) }.first
26
+
27
+ relevant_line.match(/^Running on (.*) in \//)[1]
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,16 @@
1
+ module Jenkins2API
2
+ class Job
3
+ def initialize(client)
4
+ @client = client
5
+ end
6
+
7
+ def list
8
+ @client.api_request(:get, "")['jobs']
9
+ end
10
+
11
+ def builds(name)
12
+ @client.api_request(:get, "/job/#{name}")['builds']
13
+ end
14
+ end
15
+ end
16
+
@@ -0,0 +1,12 @@
1
+ module Jenkins2API
2
+ class Node
3
+ def initialize(client)
4
+ @client = client
5
+ end
6
+
7
+ def all
8
+ @client.api_request(:get, "/computer")
9
+ end
10
+ end
11
+ end
12
+
@@ -1,4 +1,4 @@
1
1
  module Jenkins2API
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jenkins2-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Balazs Nadasdi
@@ -20,6 +20,10 @@ files:
20
20
  - README.md
21
21
  - lib/jenkins2-api.rb
22
22
  - lib/jenkins2-api/client.rb
23
+ - lib/jenkins2-api/endpoints/artifact.rb
24
+ - lib/jenkins2-api/endpoints/build.rb
25
+ - lib/jenkins2-api/endpoints/job.rb
26
+ - lib/jenkins2-api/endpoints/node.rb
23
27
  - lib/jenkins2-api/version.rb
24
28
  homepage: https://github.com/Yitsushi/jenkins2-api
25
29
  licenses: