Skip to main content

ephemeris_forge_forgejo/api/operations/
repository.rs

1use ephemeris_forge::RepoRef;
2
3use crate::api::error::ForgeError;
4use crate::api::model::Repository;
5use crate::api::request::EditRepoOption;
6
7/// The repository operations of the Forgejo API.
8pub trait RepositoryApi {
9    /// `PATCH /repos/{owner}/{repo}`.
10    fn patch_repository(
11        &self,
12        repo: &RepoRef,
13        body: &EditRepoOption,
14    ) -> impl Future<Output = Result<(), ForgeError>> + Send;
15
16    /// `PUT /repos/{owner}/{repo}/topics`.
17    fn replace_topics(
18        &self,
19        repo: &RepoRef,
20        topics: &[String],
21    ) -> impl Future<Output = Result<(), ForgeError>> + Send;
22
23    /// `GET /repos/{owner}/{repo}`.
24    fn repository(
25        &self,
26        repo: &RepoRef,
27    ) -> impl Future<Output = Result<Repository, ForgeError>> + Send;
28
29    /// `GET /repos/{owner}/{repo}/topics`.
30    fn topics(
31        &self,
32        repo: &RepoRef,
33    ) -> impl Future<Output = Result<Vec<String>, ForgeError>> + Send;
34}