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()); + } } |