From d022f4f1bd267167e587d4c21a8298151f99ea1e Mon Sep 17 00:00:00 2001 From: Cyborus Date: Mon, 1 Jan 2024 17:26:00 -0500 Subject: [PATCH 1/3] fix archive download methods --- src/repository.rs | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/repository.rs b/src/repository.rs index d9a92b1..22c518b 100644 --- a/src/repository.rs +++ b/src/repository.rs @@ -207,35 +207,23 @@ impl Forgejo { .await } - pub async fn download_release_zip( + pub async fn download_zip_archive( &self, owner: &str, repo: &str, - release: u64, + target: &str, ) -> Result, ForgejoError> { - let release = self.get_release(owner, repo, release).await; - let release = match release { - Ok(Some(release)) => release, - Ok(None) => return Ok(None), - Err(e) => return Err(e), - }; - let request = self.client.get(release.zipball_url).build()?; + let request = self.client.get(format!("repos/{owner}/{repo}/archive/{target}.zip")).build()?; self.execute_opt_raw(request).await } - pub async fn download_release_tarball( + pub async fn download_tarball_archive( &self, owner: &str, repo: &str, - release: u64, + target: &str, ) -> Result, ForgejoError> { - let release = self.get_release(owner, repo, release).await; - let release = match release { - Ok(Some(release)) => release, - Ok(None) => return Ok(None), - Err(e) => return Err(e), - }; - let request = self.client.get(release.tarball_url).build()?; + let request = self.client.get(format!("repos/{owner}/{repo}/archive/{target}.tar.gz")).build()?; self.execute_opt_raw(request).await } From dccd4c51ba524bb2d731c8511f76b817dd8ab358 Mon Sep 17 00:00:00 2001 From: Cyborus Date: Mon, 1 Jan 2024 17:53:08 -0500 Subject: [PATCH 2/3] add archive tests --- tests/ci_test.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/ci_test.rs b/tests/ci_test.rs index 3d98f71..6d6077f 100644 --- a/tests/ci_test.rs +++ b/tests/ci_test.rs @@ -243,6 +243,14 @@ async fn repo(api: &forgejo_api::Forgejo) -> eyre::Result<()> { == Some(b"This is a file!"), "couldn't download attachment" ); + ensure!( + api.download_zip_archive("TestingAdmin", "test", "v1.0").await?.is_some(), + "couldn't download zip archive" + ); + ensure!( + api.download_tarball_archive("TestingAdmin", "test", "v1.0").await?.is_some(), + "couldn't download tape archive" + ); api.delete_release_attachment("TestingAdmin", "test", release.id, attachment.id) .await From ce08cb4d7f4a9b9a4cf2b284bf26f782cf1e252d Mon Sep 17 00:00:00 2001 From: Cyborus Date: Mon, 1 Jan 2024 17:56:03 -0500 Subject: [PATCH 3/3] format --- src/repository.rs | 10 ++++++++-- tests/ci_test.rs | 8 ++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/repository.rs b/src/repository.rs index 22c518b..e56fad5 100644 --- a/src/repository.rs +++ b/src/repository.rs @@ -213,7 +213,10 @@ impl Forgejo { repo: &str, target: &str, ) -> Result, ForgejoError> { - let request = self.client.get(format!("repos/{owner}/{repo}/archive/{target}.zip")).build()?; + let request = self + .client + .get(format!("repos/{owner}/{repo}/archive/{target}.zip")) + .build()?; self.execute_opt_raw(request).await } @@ -223,7 +226,10 @@ impl Forgejo { repo: &str, target: &str, ) -> Result, ForgejoError> { - let request = self.client.get(format!("repos/{owner}/{repo}/archive/{target}.tar.gz")).build()?; + let request = self + .client + .get(format!("repos/{owner}/{repo}/archive/{target}.tar.gz")) + .build()?; self.execute_opt_raw(request).await } diff --git a/tests/ci_test.rs b/tests/ci_test.rs index 6d6077f..c7e3b90 100644 --- a/tests/ci_test.rs +++ b/tests/ci_test.rs @@ -244,11 +244,15 @@ async fn repo(api: &forgejo_api::Forgejo) -> eyre::Result<()> { "couldn't download attachment" ); ensure!( - api.download_zip_archive("TestingAdmin", "test", "v1.0").await?.is_some(), + api.download_zip_archive("TestingAdmin", "test", "v1.0") + .await? + .is_some(), "couldn't download zip archive" ); ensure!( - api.download_tarball_archive("TestingAdmin", "test", "v1.0").await?.is_some(), + api.download_tarball_archive("TestingAdmin", "test", "v1.0") + .await? + .is_some(), "couldn't download tape archive" );