Я пытаюсь настроить веб-хук, следуя этому руководству по GitHub
require 'sinatra'
require 'json'
require 'net/http'
require 'pp'
set :port, 31415
# Descarga las diferencias hechas para un push
post '/' do
push = JSON.parse(request.body.read)
piezas = push["compare"].split("/")
api_url = "/repos/#{piezas[3]}/#{piezas[4]}/compare/#{piezas[6]}"
diff = Net::HTTP.get(URI("https://api.github.com#{api_url}"))
puts diff.class
pp(JSON.parse(diff))
end
diff.class
печатает:
String
И, какпо сути, последнее предложение работает правильно, печатая через pp
структуру.Однако после печати выдается ошибка
[2018-10-25 20:00:23] ERROR TypeError: no implicit conversion of Array into String
Она не ссылается на какую-либо строку в скрипте, но возможно ли, что ошибка будет в первом файле JSON.parse?Может ли быть так, что request.body.read
будет массивом?
Обновление Я не мог отнести его к любому из JSON.parse отдельно.Загрузка полезной нагрузки ловушки работает нормально, загрузка JSON из GitHub API работает без сбоев.Каким-то образом он использует их вместе, что не работает.