Я делаю виджет с dashing.io и хотел бы изменить задания jenkins в соответствии с цветом, который я получаю в своем файле json (который я получаю из Jenkins API).
то есть: задание завершено, я получаю значение цвета «синий» из моего файла json, и я хочу, чтобы текст был синим на «виджете jenkins» на моей панели инструментов.
Проблема: я действительно не знаю, как получить данные из моего json-файла в моем сценарии coffeescript. Также я не знаю, как изменить css.
Мой файл json выглядит следующим образом:
{
"assignedLabels" : [
{
}
],
"mode" : "NORMAL",
"nodeDescription" : "blabla",
"nodeName" : "",
"numExecutors" : blabla,
"description" : blabla,
"jobs" : [
{
"name" : "JOB_NAME",
"url" : "MY_JOB_URL",
"color" : "blue"
}
]
}
Вот мой код виджета:
require 'net/http'
require 'json'
require 'time'
JENKINS_URI = URI.parse("jenkins_url")
JENKINS_AUTH = {
'name' => 'user',
'password' => 'pwd'
}
def get_json_for_master_jenkins()
http = Net::HTTP.new(JENKINS_URI.host, JENKINS_URI.port)
request = Net::HTTP::Get.new("/jenkins/api/json?pretty=true")
if JENKINS_AUTH['name']
request.basic_auth(JENKINS_AUTH['name'], JENKINS_AUTH['password'])
end
response = http.request(request)
JSON.parse(response.body)
end
# the key of this mapping must be a unique identifier for your job, the according value must be the name that is specified in jenkins
SCHEDULER.every '100s', :first_in => 0 do |job|
thom = get_json_for_master_jenkins()
send_event('master_jobs',
jobs: thom['jobs'][0..4],
colors:thom['jobs']['color']
)
end
Не могли бы вы, ребята, помочь мне? Я действительно новичок в этом, постарайтесь сделать это проще, пожалуйста.