gitea-release/src/cmd/delete.rs

35 lines
815 B
Rust
Raw Normal View History

2020-05-30 16:24:04 +00:00
use crate::{gitea::*, *};
use anyhow::{anyhow, Result};
pub(crate) async fn run(common: Common) -> Result<()> {
if common.tag.is_none() {
return Err(anyhow!("requires --tag"));
}
let cli = client(&common)?;
let release = get_release_by_tag(
&cli,
&common.server,
&common.owner,
&common.repo,
&common.tag.unwrap(),
)
.await?;
let resp = cli
.delete(
format!(
"{}/api/v1/repos/{}/{}/releases/{}",
&common.server, &common.owner, &common.repo, release.id
)
.as_str(),
)
.send()
.await?;
if resp.status() != http::StatusCode::from_u16(204)? {
Err(anyhow!("wanted 204, got {}", resp.status()))
} else {
Ok(())
}
}