認証のユーザ情報は「Jenkinsのユーザーデータベース」を利用しています
簡単なGET系のリクエストのみとなります
環境
サーバ
Jenkins 1.517
CentOS 6.3
クライアント
Ruby 2.0.0
Jenkins 1.517
CentOS 6.3
クライアント
Ruby 2.0.0
■CURLでリクエスト
curl --user username:password http://localhost:8080/api/json?pretty=true
■レスポンスサンプル
{
"assignedLabels" : [
{
}
],
"mode" : "NORMAL",
"nodeDescription" : "the master Jenkins node",
"nodeName" : "",
"numExecutors" : 5,
"description" : "description",
"jobs" : [
{
"name" : "job001",
"url" : "http://localhost:8080/job/job001/",
"color" : "blue"
},
{
"name" : "job002",
"url" : "http://localhost:8080/job/job002/",
"color" : "blue"
}
],
"overallLoad" : {
},
"primaryView" : {
"name" : "view",
"url" : "http://localhost:8080/"
},
"quietingDown" : false,
"slaveAgentPort" : 0,
"unlabeledLoad" : {
},
"useCrumbs" : false,
"useSecurity" : true,
"views" : [
{
"name" : "view",
"url" : "http://localhost:8080/"
},
{
"name" : "view02",
"url" : "http://localhost:8080/view/view02/"
}
]
}
■rubyから実施
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
require 'open-uri'
require 'json'
uri = "http://localhost:8080/api/json?pretty=true"
auth = ['username', 'password']
#f = open(uri, {:http_basic_authentication => auth})
f = open(uri, {:http_basic_authentication => auth, :proxy => 'http://proxyname:8080/'})
json = JSON.parse(f.read)
json['jobs'].each { |i|
p i['url']
}
ジョブのURL一覧がずらっと表示されます
特に認証を気にせずJSONでちゃちゃっと取得するだけならこれで十分そうですね
時間があればPOST系のリクエストも試してみたい
0 件のコメント:
コメントを投稿