aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTeddy Wing2017-11-07 23:41:57 +0100
committerTeddy Wing2017-11-07 23:45:13 +0100
commit5e217b98734ea852ed2e6c284b0fe295951766b5 (patch)
treed3c4d112540b03c8029680b2f76d0d3b22b5303d /src
parente5d90c10ec3097838216f592775b4dae5fe52d32 (diff)
downloadkipper-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.
Diffstat (limited to 'src')
-rw-r--r--src/jenkins.rs32
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());
+ }
}