args_api/endpoint/repository/
create_repository.rs1use serde::{Deserialize, Serialize};
2
3use super::default_visibility;
4use crate::{endpoint::Endpoint, resource::RepositoryResource};
5
6pub struct CreateRepository;
7
8impl Endpoint for CreateRepository {
9 const PATH: &'static str = "/repository/{owner}/{repo}";
10 const METHOD: http::Method = http::Method::POST;
11
12 type Request = CreateRepositoryRequest;
13 type Response = CreateRepositoryResponse;
14}
15
16#[derive(ApiRequest, Debug, Serialize, Deserialize)]
17pub struct CreateRepositoryRequest {
18 pub owner_type: String,
19
20 #[serde(default = "default_visibility")]
21 pub visibility: String,
22
23 #[serde(default, skip_serializing_if = "Option::is_none")]
24 pub description: Option<String>,
25
26 #[serde(default)]
27 pub init_readme: bool,
28
29 #[serde(default, skip_serializing_if = "Option::is_none")]
30 pub gitignore_template: Option<String>,
31
32 #[serde(default, skip_serializing_if = "Option::is_none")]
33 pub license_template: Option<String>,
34}
35
36pub type CreateRepositoryResponse = RepositoryResource;