gitea_sdk/api/pulls/reviews/
get.rs

1use build_it::Builder;
2use serde::Serialize;
3
4use crate::{
5    error::Result,
6    model::{
7        reviews::PullReview,
8    },
9    Client,
10};
11
12#[derive(Debug, Clone, Serialize, Builder)]
13#[build_it(into)]
14pub struct GetReviewsBuilder {
15    #[serde(skip)]
16    #[skip]
17    owner: String,
18    #[serde(skip)]
19    #[skip]
20    repo: String,
21    /// Index of the pull request
22    #[serde(skip)]
23    #[skip]
24    index: i64,
25
26    /// Page number of results to return (1-based)
27    page: Option<i64>,
28    /// Page size of results
29    limit: Option<i64>,
30}
31
32impl GetReviewsBuilder {
33    pub fn new(owner: impl ToString, repo: impl ToString, index: i64) -> Self {
34        Self {
35            owner: owner.to_string(),
36            repo: repo.to_string(),
37            index,
38            page: None,
39            limit: None,
40        }
41    }
42    /// Sends the request to list all reviews for a pull request.
43    pub async fn send(&self, client: &Client) -> Result<Vec<PullReview>> {
44        let owner = &self.owner;
45        let repo = &self.repo;
46        let index = &self.index;
47        let req = client
48            .get(format!("repos/{owner}/{repo}/pulls/{index}/reviews"))
49            .query(self)
50            .build()?;
51        let res = client.make_request(req).await?;
52        client.parse_response(res).await
53    }
54}