Revert "http_client: Add integrity checks for GitHub binaries using digest checks (#43737)" (#44086)

This reverts commit 05764e8af7.

Internally we've seen a much higher incidence of macOS code-signing
failing on
the download rust analyzer than we did before this change.

It's unclear why this would be a problem, but we want to try reverting
to see if that fixes it.

Release Notes:

- Reverted a change that seemed to cause problems with code-signing on
rust-analyzer
This commit is contained in:
Conrad Irwin
2025-12-03 11:40:47 -07:00
committed by GitHub
parent 0818cedded
commit 493cfadb42
3 changed files with 86 additions and 92 deletions
+1 -60
View File
@@ -1,4 +1,4 @@
use std::{future::Future, path::Path, pin::Pin, task::Poll};
use std::{path::Path, pin::Pin, task::Poll};
use anyhow::{Context, Result};
use async_compression::futures::bufread::GzipDecoder;
@@ -85,65 +85,6 @@ pub async fn download_server_binary(
Ok(())
}
pub async fn fetch_github_binary_with_digest_check<ValidityCheck, ValidityCheckFuture>(
binary_path: &Path,
metadata_path: &Path,
expected_digest: Option<String>,
url: &str,
asset_kind: AssetKind,
download_destination: &Path,
http_client: &dyn HttpClient,
validity_check: ValidityCheck,
) -> Result<()>
where
ValidityCheck: FnOnce() -> ValidityCheckFuture,
ValidityCheckFuture: Future<Output = Result<()>>,
{
let metadata = GithubBinaryMetadata::read_from_file(metadata_path)
.await
.ok();
if let Some(metadata) = metadata {
let validity_check_result = validity_check().await;
if let (Some(actual_digest), Some(expected_digest_ref)) =
(&metadata.digest, &expected_digest)
{
if actual_digest == expected_digest_ref {
if validity_check_result.is_ok() {
return Ok(());
}
} else {
log::info!(
"SHA-256 mismatch for {binary_path:?} asset, downloading new asset. Expected: {expected_digest_ref}, Got: {actual_digest}"
);
}
} else if validity_check_result.is_ok() {
return Ok(());
}
}
download_server_binary(
http_client,
url,
expected_digest.as_deref(),
download_destination,
asset_kind,
)
.await?;
GithubBinaryMetadata::write_to_file(
&GithubBinaryMetadata {
metadata_version: 1,
digest: expected_digest,
},
metadata_path,
)
.await?;
Ok(())
}
async fn stream_response_archive(
response: impl AsyncRead + Unpin,
url: &str,