Merge pull request #2367 from zed-industries/log-github-api-response-for-deserialize-error

Julia created

In the case of Github release deserialize error, log response text

Change summary

crates/util/src/github.rs | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)

Detailed changes

crates/util/src/github.rs 🔗

@@ -9,13 +9,13 @@ pub struct GitHubLspBinaryVersion {
     pub url: String,
 }
 
-#[derive(Deserialize)]
+#[derive(Deserialize, Debug)]
 pub struct GithubRelease {
     pub name: String,
     pub assets: Vec<GithubReleaseAsset>,
 }
 
-#[derive(Deserialize)]
+#[derive(Deserialize, Debug)]
 pub struct GithubReleaseAsset {
     pub name: String,
     pub browser_download_url: String,
@@ -40,7 +40,13 @@ pub async fn latest_github_release(
         .await
         .context("error reading latest release")?;
 
-    let release: GithubRelease =
-        serde_json::from_slice(body.as_slice()).context("error deserializing latest release")?;
-    Ok(release)
+    let release = serde_json::from_slice::<GithubRelease>(body.as_slice());
+    if release.is_err() {
+        log::error!(
+            "Github API response text: {:?}",
+            String::from_utf8_lossy(body.as_slice())
+        );
+    }
+
+    release.context("error deserializing latest release")
 }