From 5e217b98734ea852ed2e6c284b0fe295951766b5 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Tue, 7 Nov 2017 23:41:57 +0100 Subject: 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. --- src/jenkins.rs | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'src') 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 { + 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()); + } } -- cgit v1.2.3