Merge pull request 'fix archive download methods' (#33) from zipball-url into main
Reviewed-on: https://codeberg.org/Cyborus/forgejo-api/pulls/33
This commit is contained in:
commit
cb192d8eef
|
@ -207,35 +207,29 @@ impl Forgejo {
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn download_release_zip(
|
pub async fn download_zip_archive(
|
||||||
&self,
|
&self,
|
||||||
owner: &str,
|
owner: &str,
|
||||||
repo: &str,
|
repo: &str,
|
||||||
release: u64,
|
target: &str,
|
||||||
) -> Result<Option<bytes::Bytes>, ForgejoError> {
|
) -> Result<Option<bytes::Bytes>, ForgejoError> {
|
||||||
let release = self.get_release(owner, repo, release).await;
|
let request = self
|
||||||
let release = match release {
|
.client
|
||||||
Ok(Some(release)) => release,
|
.get(format!("repos/{owner}/{repo}/archive/{target}.zip"))
|
||||||
Ok(None) => return Ok(None),
|
.build()?;
|
||||||
Err(e) => return Err(e),
|
|
||||||
};
|
|
||||||
let request = self.client.get(release.zipball_url).build()?;
|
|
||||||
self.execute_opt_raw(request).await
|
self.execute_opt_raw(request).await
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn download_release_tarball(
|
pub async fn download_tarball_archive(
|
||||||
&self,
|
&self,
|
||||||
owner: &str,
|
owner: &str,
|
||||||
repo: &str,
|
repo: &str,
|
||||||
release: u64,
|
target: &str,
|
||||||
) -> Result<Option<bytes::Bytes>, ForgejoError> {
|
) -> Result<Option<bytes::Bytes>, ForgejoError> {
|
||||||
let release = self.get_release(owner, repo, release).await;
|
let request = self
|
||||||
let release = match release {
|
.client
|
||||||
Ok(Some(release)) => release,
|
.get(format!("repos/{owner}/{repo}/archive/{target}.tar.gz"))
|
||||||
Ok(None) => return Ok(None),
|
.build()?;
|
||||||
Err(e) => return Err(e),
|
|
||||||
};
|
|
||||||
let request = self.client.get(release.tarball_url).build()?;
|
|
||||||
self.execute_opt_raw(request).await
|
self.execute_opt_raw(request).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -243,6 +243,18 @@ async fn repo(api: &forgejo_api::Forgejo) -> eyre::Result<()> {
|
||||||
== Some(b"This is a file!"),
|
== Some(b"This is a file!"),
|
||||||
"couldn't download attachment"
|
"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)
|
api.delete_release_attachment("TestingAdmin", "test", release.id, attachment.id)
|
||||||
.await
|
.await
|
||||||
|
|
Loading…
Reference in a new issue