///|
fn main {
let secret = "demo-secret"
let body = "{\"ref\":\"refs/heads/main\",\"repository\":{\"full_name\":\"zzy12346/12312\"}}"
let signature = @moonhook.sign_github_body(secret, body)
let raw_request = "POST /hooks/github HTTP/1.1\r\n" +
"Host: localhost\r\n" +
"Content-Type: application/json\r\n" +
"X-GitHub-Event: push\r\n" +
"X-GitHub-Delivery: demo-delivery\r\n" +
"X-Hub-Signature-256: " +
signature +
"\r\n\r\n" +
body
let router = @moonhook.new_hook_router().on(
@moonhook.GitHub,
"push",
name="github-push",
)
let endpoint = @moonhook.new_github_endpoint("/hooks/github", secret, router).use_middleware(
"require-repository",
@moonhook.require_attribute_middleware("repository"),
)
let (_, response) = endpoint.handle_raw(raw_request)
println(response.render())
}