diff --git a/cli/src/commands/mod.rs b/cli/src/commands/mod.rs index 9f03a12f12..daa926d67a 100644 --- a/cli/src/commands/mod.rs +++ b/cli/src/commands/mod.rs @@ -95,6 +95,11 @@ pub enum SourcemapCommand { /// Whether to delete the source map files after uploading them #[arg(long, default_value = "false")] delete_after: bool, + + /// Whether to skip SSL verification when uploading chunks - only use when using self-signed certificates for + /// self-deployed instances + #[arg(long, default_value = "false")] + skip_ssl_verification: bool, }, } @@ -131,6 +136,7 @@ impl Cli { project, version, delete_after, + skip_ssl_verification, } => { sourcemap::inject::inject(directory)?; sourcemap::upload::upload( @@ -139,6 +145,7 @@ impl Cli { project.clone(), version.clone(), *delete_after, + *skip_ssl_verification, )?; } }, diff --git a/cli/src/commands/sourcemap/upload.rs b/cli/src/commands/sourcemap/upload.rs index ca1fc40c66..29f9415ffa 100644 --- a/cli/src/commands/sourcemap/upload.rs +++ b/cli/src/commands/sourcemap/upload.rs @@ -51,6 +51,7 @@ pub fn upload( project: Option, version: Option, delete_after: bool, + skip_ssl_verification: bool, ) -> Result<()> { let token = load_token().context("While starting upload command")?; let host = token.get_host(host.as_deref()); @@ -83,10 +84,17 @@ pub fn upload( Some(content_hash(uploads.iter().map(|upload| &upload.data))), project, version, + skip_ssl_verification, ) .context("While creating release")?; - upload_chunks(&base_url, &token.token, uploads, release.as_ref())?; + upload_chunks( + &base_url, + &token.token, + uploads, + release.as_ref(), + skip_ssl_verification, + )?; if delete_after { delete_files(sourcemap_paths).context("While deleting sourcemaps")?; @@ -110,8 +118,12 @@ fn upload_chunks( token: &str, uploads: Vec, release: Option<&CreateReleaseResponse>, + skip_ssl_verification: bool, ) -> Result<()> { - let client = reqwest::blocking::Client::new(); + let client = reqwest::blocking::Client::builder() + .danger_accept_invalid_certs(skip_ssl_verification) + .build()?; + let release_id = release.map(|r| r.id.to_string()); let chunk_ids = uploads .iter() diff --git a/cli/src/utils/release.rs b/cli/src/utils/release.rs index 148f20fed8..86f3cbb330 100644 --- a/cli/src/utils/release.rs +++ b/cli/src/utils/release.rs @@ -30,6 +30,7 @@ pub fn create_release( hash_id: Option, project: Option, version: Option, + skip_ssl_verification: bool, ) -> Result> { let git_info = get_git_info(dir)?; @@ -63,7 +64,9 @@ pub fn create_release( host, token.env_id ); - let client = reqwest::blocking::Client::new(); + let client = reqwest::blocking::Client::builder() + .danger_accept_invalid_certs(skip_ssl_verification) + .build()?; let response = client .post(&url)