35 lines
815 B
Rust
35 lines
815 B
Rust
|
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(())
|
||
|
}
|
||
|
}
|