認証のユーザ情報は「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 件のコメント:
コメントを投稿