jenkins2-api 0.0.1 → 0.0.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: 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: