diff options
| author | Teddy Wing | 2017-11-07 23:41:57 +0100 | 
|---|---|---|
| committer | Teddy Wing | 2017-11-07 23:45:13 +0100 | 
| commit | 5e217b98734ea852ed2e6c284b0fe295951766b5 (patch) | |
| tree | d3c4d112540b03c8029680b2f76d0d3b22b5303d | |
| parent | e5d90c10ec3097838216f592775b4dae5fe52d32 (diff) | |
| download | kipper-5e217b98734ea852ed2e6c284b0fe295951766b5.tar.bz2 | |
jenkins.rs: Add `get_jobs`, test HTTP request
Try making our first HTTP request to the Jenkins API. Use Basic
authentication with our name and access token.
The 'reqwest' format is based on
https://doc.rust-lang.org/stable/std/string/struct.String.html
Eventually this method should return a `Vec` of jobs, actually job URLs,
but at least we know it works and gives us a 200.
| -rw-r--r-- | src/jenkins.rs | 32 | 
1 files changed, 31 insertions, 1 deletions
| diff --git a/src/jenkins.rs b/src/jenkins.rs index 4958e78..609fa37 100644 --- a/src/jenkins.rs +++ b/src/jenkins.rs @@ -20,7 +20,37 @@  // fn request_job(url)  // fn result_from_job(payload) +extern crate reqwest; + +use self::reqwest::header::{Authorization, Basic}; + +pub fn auth_credentials() -> Basic { +    Basic { +        username: "username".to_string(), +        password: Some("token".to_string()), +    } +} + +pub fn get_jobs(repo_name: String) {//-> Vec<String> { +    let client = reqwest::Client::new(); + +    let credentials = auth_credentials(); + +    let mut res = client.get("http://jenkins.example.com/job/changes-branches/18/api/json") +        .header(Authorization(credentials)) +        .send() +        .unwrap(); + +    println!("{}", res.status()); +} + +  #[cfg(test)]  mod tests { -    // fn  +    use super::*; + +    #[test] +    fn get_jobs_queries_jobs_from_jenkins_api() { +        get_jobs("changes".to_string()); +    }  } | 
