manager: Remove Stale label if present
The stale label provides an easy way to force CI runs for issues after changing dependencies.
This commit is contained in:
parent
e274f6206c
commit
f04beb5dea
4 changed files with 49 additions and 0 deletions
|
|
@ -78,5 +78,42 @@ pub async fn update_bot_comment(
|
|||
)
|
||||
.await
|
||||
.context("Failed to update comment body")?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn remove_stale_label(
|
||||
forgejo: &forgejo_api::Forgejo,
|
||||
meta: &crate::event_meta::RepoMeta,
|
||||
issue_number: u64,
|
||||
) -> anyhow::Result<()> {
|
||||
let labels = forgejo
|
||||
.issue_get_labels(&meta.owner, &meta.name, issue_number)
|
||||
.await
|
||||
.context("Failed fetching issue labels")?;
|
||||
|
||||
let stale_label_id = labels
|
||||
.iter()
|
||||
.filter(|l| l.name.as_deref() == Some("Stale"))
|
||||
.next()
|
||||
.map(|l| l.id.unwrap());
|
||||
|
||||
if let Some(stale_label_id) = stale_label_id {
|
||||
log::info!("Removing `Stale` label from issue #{issue_number}...");
|
||||
|
||||
forgejo
|
||||
.issue_remove_label(
|
||||
&meta.owner,
|
||||
&meta.name,
|
||||
issue_number,
|
||||
stale_label_id,
|
||||
forgejo_api::structs::DeleteLabelsOption {
|
||||
updated_at: Some(time::OffsetDateTime::now_utc()),
|
||||
},
|
||||
)
|
||||
.await
|
||||
.context("Failed to remove the `Stale` label")?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue