gitea_sdk/api/users/
repos.rs

1use build_it::Builder;
2use serde::Serialize;
3
4use crate::{error::Result, model::repos::Repository, Client};
5
6#[derive(Debug, Clone, Serialize, Builder)]
7pub struct ListReposBuilder {
8    #[build_it(skip)]
9    #[serde(skip)]
10    username: String,
11
12    /// Page number of results to return (1-based).
13    page: Option<i64>,
14    /// Page size of results.
15    limit: Option<i64>,
16}
17
18impl ListReposBuilder {
19    pub fn new(username: &str) -> Self {
20        Self {
21            username: username.to_string(),
22            page: None,
23            limit: None,
24        }
25    }
26
27    /// Sends the request to get a user's repositories.
28    pub async fn send(&self, client: &Client) -> Result<Vec<Repository>> {
29        let req = client
30            .get(format!("users/{}/repos", self.username))
31            .query(self)
32            .build()?;
33        let res = client.make_request(req).await?;
34        client.parse_response(res).await
35    }
36}