diff --git a/src/client_internals/builder.rs b/src/client_internals/builder.rs index ffd7c36e..e41a0d0d 100644 --- a/src/client_internals/builder.rs +++ b/src/client_internals/builder.rs @@ -14,7 +14,7 @@ use crate::client::Result; ///# ///# fn example_function() { /// let jenkins = JenkinsBuilder::new("http://localhost:8080") -/// .with_user("user", Some("password")) +/// .with_user("user", Some("password_or_token")) /// .build() /// .unwrap(); ///# } @@ -23,6 +23,7 @@ use crate::client::Result; pub struct JenkinsBuilder { url: String, user: Option, + allow_insecure_ssl_connection: bool, csrf_enabled: bool, depth: u8, } @@ -39,6 +40,7 @@ impl JenkinsBuilder { } }, user: None, + allow_insecure_ssl_connection: false, csrf_enabled: true, depth: 1, } @@ -56,7 +58,9 @@ impl JenkinsBuilder { Ok(Jenkins { url: self.url, - client: Client::builder().build()?, + client: Client::builder() + .danger_accept_invalid_certs(self.allow_insecure_ssl_connection) + .build()?, user: self.user, csrf_enabled: self.csrf_enabled, depth: self.depth, @@ -72,6 +76,12 @@ impl JenkinsBuilder { self } + /// Allow connections with invalid or self-signed certificates + pub fn allow_insecure_ssl(mut self) -> Self { + self.allow_insecure_ssl_connection = true; + self + } + /// Disable CSRF in crumbs used for post queries pub fn disable_csrf(mut self) -> Self { self.csrf_enabled = false; @@ -108,6 +118,14 @@ mod tests { assert_eq!(jenkins_client.csrf_enabled, true); } + #[test] + fn create_builder_allowing_insecure_tls() { + let jenkins_client = crate::JenkinsBuilder::new(JENKINS_URL).allow_insecure_ssl(); + assert_eq!(jenkins_client.url, JENKINS_URL); + assert_eq!(jenkins_client.user, None); + assert_eq!(jenkins_client.allow_insecure_ssl_connection, true); + } + #[test] fn disable_csrf() { let jenkins_client = crate::JenkinsBuilder::new(JENKINS_URL).disable_csrf(); diff --git a/src/job/common.rs b/src/job/common.rs index 621a8abf..3b411813 100644 --- a/src/job/common.rs +++ b/src/job/common.rs @@ -440,7 +440,7 @@ macro_rules! job_buildable_with_common_fields_and_impl { )*)* private_fields { /// Properties of the job - property: Vec, + _property: Vec, } } } diff --git a/src/scm/mod.rs b/src/scm/mod.rs index 02467702..855eec3f 100644 --- a/src/scm/mod.rs +++ b/src/scm/mod.rs @@ -8,6 +8,7 @@ mod browser; pub use self::browser::*; /// SCM merge options +#[allow(dead_code)] #[derive(Default, Deserialize, Debug)] #[serde(rename_all = "camelCase")] pub struct MergeOptions {