diff options
| -rw-r--r-- | src/lib.rs | 5 | ||||
| -rw-r--r-- | src/main.rs | 25 | 
2 files changed, 26 insertions, 4 deletions
| @@ -1,4 +1,5 @@ -mod pull_request; +pub mod jenkins; +pub mod pull_request; +  mod github; -mod jenkins;  mod af83; diff --git a/src/main.rs b/src/main.rs index e9c50e4..e5f7235 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,12 +1,33 @@  #[macro_use]  extern crate rouille; +extern crate kipper; + +use std::io::Read; + +use kipper::jenkins; +use kipper::pull_request::CommitRef;  fn main() {      rouille::start_server("localhost:8000", move |request| {          router!(request, -            (GET) (/) => { -                rouille::Response::text("hello world") +            (POST) (/github/pull_request_event) => { +                let mut body = String::new(); + +                match request.data() { +                    None => rouille::Response::text("400 Bad Request") +                        .with_status_code(400), +                    Some(mut data) => { +                        try_or_400!(data.read_to_string(&mut body)); + +                        let commit_ref = CommitRef::new(body.as_ref()); + +                        jenkins::find_and_track_build_and_update_status(commit_ref); + +                        rouille::Response::text("202 Accepted") +                            .with_status_code(202) +                    } +                }              },              _ => rouille::Response::text("404 Not Found") | 
