import curl
import json::static
+import json
# Specific Curl that know hot to talk to the github API
class GithubCurl
var header: HeaderMap is noinit
# OAuth token
+ #
+ # Use an empty string to disable authentication and connect
+ # anonymously (thus less capabilities and more rate limits)
var auth: String
# User agent (is used by github to contact devs in case of problems)
init do
header = new HeaderMap
- header["Authorization"] = "token {auth}"
+ if auth != "" then header["Authorization"] = "token {auth}"
end
# Get the requested URI, and check the HTTP response. Then convert to JSON
if obj isa JsonObject then
if obj.keys.has("message") then
var title = "GithubAPIError"
- var msg = obj["message"].to_s
+ var msg = obj["message"].as(not null).to_s
var err = new GithubError(msg, title)
err.json["requested_uri"] = uri
err.json["status_code"] = response.status_code
json["message"] = message.to_json
end
- redef fun to_json do
- return json.to_json
- end
+ redef fun serialize_to(v) do json.serialize_to v
redef fun to_s do return "[{name}] {super}"
end