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 +4 -4
- data/lib/jenkins2-api/client.rb +13 -20
- data/lib/jenkins2-api/endpoints/artifact.rb +15 -0
- data/lib/jenkins2-api/endpoints/build.rb +30 -0
- data/lib/jenkins2-api/endpoints/job.rb +16 -0
- data/lib/jenkins2-api/endpoints/node.rb +12 -0
- data/lib/jenkins2-api/version.rb +1 -1
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62981c6fd8f5b6edc958d228aba2bde9369e9e70
|
4
|
+
data.tar.gz: a2104e72d23d95e642f82ed01edf1e1460495e86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef141b8bd26a04b302f41b502cb20bf1aac69269d1cd77729ab75cb39106170ca486d29a45599a951b3c91383daebcb18ce21b7fb27e5ef55b3d6cbe26154add
|
7
|
+
data.tar.gz: 801d517e3c65ef1bc7deae04c7052f23d491f371d26ca1233733efd094ec36e9c36df920fb2be96c05f8da140ee9e0b8fdc13e18d97d0673f69400a9ffa68fbf
|
data/lib/jenkins2-api/client.rb
CHANGED
@@ -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
|
17
|
-
|
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
|
25
|
-
|
25
|
+
def build
|
26
|
+
@build ||= Build.new(self)
|
26
27
|
end
|
27
28
|
|
28
|
-
def
|
29
|
-
|
29
|
+
def artifact
|
30
|
+
@artifact ||= Artifact.new(self)
|
30
31
|
end
|
31
32
|
|
32
|
-
def
|
33
|
-
|
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
|
data/lib/jenkins2-api/version.rb
CHANGED
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.
|
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:
|