3535# Validation Functions #
3636# #######################
3737
38- has_event_header (request:: HTTP.Request ) = haskey ( HTTP. headers (request) , " X-Github-Event" )
39- event_header (request:: HTTP.Request ) = HTTP. headers (request)[ " X-Github-Event" ]
38+ has_event_header (request:: HTTP.Request ) = HTTP. hasheader (request, " X-Github-Event" )
39+ event_header (request:: HTTP.Request ) = HTTP. header (request, " X-Github-Event" )
4040
41- has_sig_header (request:: HTTP.Request ) = haskey ( HTTP. headers (request) , " X-Hub-Signature" )
42- sig_header (request:: HTTP.Request ) = HTTP. headers (request)[ " X-Hub-Signature" ]
41+ has_sig_header (request:: HTTP.Request ) = HTTP. hasheader (request, " X-Hub-Signature" )
42+ sig_header (request:: HTTP.Request ) = HTTP. header (request, " X-Hub-Signature" )
4343
4444function has_valid_secret (request:: HTTP.Request , secret)
4545 if has_sig_header (request)
46- secret_sha = " sha1=" * bytes2hex (MbedTLS. digest (MbedTLS. MD_SHA1, String (request), secret))
46+ secret_sha = " sha1=" * bytes2hex (MbedTLS. digest (MbedTLS. MD_SHA1, HTTP . load (request), secret))
4747 return sig_header (request) == secret_sha
4848 end
4949 return false
6262# ################
6363
6464struct EventListener
65- server:: HTTP.Server
65+ server:: HTTP.Servers. Server
6666 repos
6767 events
6868 function EventListener (handle; auth:: Authorization = AnonymousAuth (),
@@ -76,7 +76,7 @@ struct EventListener
7676 repos = map (name, repos)
7777 end
7878
79- server = HTTP. Server () do request, response
79+ server = HTTP. Servers . Server () do request, response
8080 try
8181 handle_event_request (request, handle; auth = auth,
8282 secret = secret, events = events,
@@ -98,17 +98,17 @@ function handle_event_request(request, handle;
9898 secret = nothing , events = nothing ,
9999 repos = nothing , forwards = nothing )
100100 if ! (isa (secret, Void)) && ! (has_valid_secret (request, secret))
101- return HTTP. Response (400 , " invalid signature " )
101+ return HTTP. Response (400 )
102102 end
103103
104104 if ! (isa (events, Void)) && ! (is_valid_event (request, events))
105- return HTTP. Response (204 , " event ignored " )
105+ return HTTP. Response (204 )
106106 end
107107
108- event = event_from_payload! (event_header (request), JSON. parse (String (request)))
108+ event = event_from_payload! (event_header (request), JSON. parse (HTTP . load (request)))
109109
110110 if ! (isa (repos, Void)) && ! (from_valid_repo (event, repos))
111- return HTTP. Response (400 , " invalid repo " )
111+ return HTTP. Response (400 )
112112 end
113113
114114 if ! (isa (forwards, Void))
@@ -117,14 +117,7 @@ function handle_event_request(request, handle;
117117 end
118118 end
119119
120- retval = handle (event)
121- if retval isa HttpCommon. Response
122- Base. depwarn (" event handlers should return an `HTTP.Response` instead of an `HttpCommon.Response`,
123- making a best effort to convert to an `HTTP.Response`" , :handle_event_request )
124- retval = HTTP. Response (; status = retval. status, headers = convert (Dict{String, String}, retval. headers),
125- body = HTTP. FIFOBuffer (retval. data))
126- end
127- return retval
120+ return handle (event)
128121end
129122
130123function Base. run (listener, args... ; host = nothing , port = nothing , kwargs... )
@@ -138,7 +131,7 @@ function Base.run(listener::EventListener, host::HTTP.IPAddr, port::Int, args...
138131 println (" Listening for GitHub events sent to $port ;" )
139132 println (" Whitelisted events: $(isa (listener. events, Void) ? " All" : listener. events) " )
140133 println (" Whitelisted repos: $(isa (listener. repos, Void) ? " All" : listener. repos) " )
141- return HTTP. serve (listener. server, host, port, args... ; kwargs... )
134+ return HTTP. Servers . serve (listener. server, host, port, args... ; kwargs... )
142135end
143136
144137# ##################
0 commit comments