Skip to main content

ephemeris_forge_forgejo/api/operations/
labels.rs

1use ephemeris_forge::RepoRef;
2
3use crate::api::error::ForgeError;
4use crate::api::model::Label;
5use crate::api::request::{CreateLabelOption, EditLabelOption};
6
7/// The label operations of the Forgejo API.
8pub trait LabelsApi {
9    /// `POST /repos/{owner}/{repo}/labels`.
10    fn create_label(
11        &self,
12        repo: &RepoRef,
13        body: &CreateLabelOption,
14    ) -> impl Future<Output = Result<(), ForgeError>> + Send;
15
16    /// `DELETE /repos/{owner}/{repo}/labels/{id}`.
17    fn delete_label(
18        &self,
19        repo: &RepoRef,
20        id: i64,
21    ) -> impl Future<Output = Result<(), ForgeError>> + Send;
22
23    /// `GET /repos/{owner}/{repo}/labels`, every page.
24    fn labels(&self, repo: &RepoRef)
25    -> impl Future<Output = Result<Vec<Label>, ForgeError>> + Send;
26
27    /// `PATCH /repos/{owner}/{repo}/labels/{id}`.
28    fn patch_label(
29        &self,
30        repo: &RepoRef,
31        id: i64,
32        body: &EditLabelOption,
33    ) -> impl Future<Output = Result<(), ForgeError>> + Send;
34}