args_api/endpoint/repository/
list_repository_commits.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4use super::default_ref;
5use crate::{
6 endpoint::Endpoint,
7 resource::{common::Page, repository::RepositoryCommitResource},
8};
9
10pub struct ListRepositoryCommits;
11
12impl Endpoint for ListRepositoryCommits {
13 const PATH: &'static str = "/repository/{owner}/{repo}/commits";
14 const METHOD: http::Method = http::Method::GET;
15
16 type Request = ListRepositoryCommitsRequest;
17 type Response = ListRepositoryCommitsResponse;
18}
19
20#[derive(ApiRequest, Debug, Default, Serialize, Deserialize)]
21pub struct ListRepositoryCommitsRequest {
22 #[serde(default = "default_ref")]
23 pub ref_name: String,
24 #[serde(default, skip_serializing_if = "Option::is_none")]
25 pub from: Option<DateTime<Utc>>,
26 #[serde(default, skip_serializing_if = "Option::is_none")]
27 pub to: Option<DateTime<Utc>>,
28 #[serde(default, skip_serializing_if = "Option::is_none")]
29 pub cursor: Option<String>,
30 #[serde(default, skip_serializing_if = "Option::is_none")]
31 pub limit: Option<u32>,
32}
33
34pub type ListRepositoryCommitsResponse = Page<RepositoryCommitResource>;