Skip to content
Clone
a06673b
119 lines 3.5 KB Rust
use std::sync::Arc;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RepoConfig {
#[serde(default = "default_max_pagination")]
pub max_pagination: u64,
#[serde(default = "default_default_pagination")]
pub default_pagination: u64,
#[serde(default = "default_repo_name_len")]
pub max_repo_name_len: usize,
#[serde(default = "default_description_len")]
pub max_description_len: usize,
#[serde(default = "default_website_len")]
pub max_website_len: usize,
#[serde(default = "default_topic_len")]
pub max_topic_len: usize,
#[serde(default = "default_branch_name_len")]
pub max_branch_name_len: usize,
#[serde(default = "default_tag_name_len")]
pub max_tag_name_len: usize,
#[serde(default = "default_release_body_len")]
pub max_release_body_len: usize,
#[serde(default = "default_default_branch")]
pub default_branch: String,
#[serde(default = "default_object_format")]
pub default_object_format: String,
#[serde(default = "default_git_dir")]
pub git_storage_root: String,
#[serde(default = "default_lfs_dir")]
pub lfs_storage_root: String,
#[serde(default = "default_branch_protection_priority_max")]
pub branch_protection_priority_max: i64,
#[serde(default = "default_max_topics")]
pub max_topics_per_repo: usize,
#[serde(default = "default_pr_title_len")]
pub max_pr_title_len: usize,
#[serde(default = "default_pr_body_len")]
pub max_pr_body_len: usize,
}
fn default_max_pagination() -> u64 {
100
}
fn default_default_pagination() -> u64 {
20
}
fn default_repo_name_len() -> usize {
100
}
fn default_description_len() -> usize {
512
}
fn default_website_len() -> usize {
256
}
fn default_topic_len() -> usize {
35
}
fn default_branch_name_len() -> usize {
100
}
fn default_tag_name_len() -> usize {
100
}
fn default_release_body_len() -> usize {
65535
}
fn default_default_branch() -> String {
"main".to_string()
}
fn default_object_format() -> String {
"sha1".to_string()
}
fn default_git_dir() -> String {
"/var/lib/repo/git".to_string()
}
fn default_lfs_dir() -> String {
"/var/lib/repo/lfs".to_string()
}
fn default_branch_protection_priority_max() -> i64 {
10_000
}
fn default_max_topics() -> usize {
25
}
fn default_pr_title_len() -> usize {
255
}
fn default_pr_body_len() -> usize {
65535
}
impl Default for RepoConfig {
fn default() -> Self {
Self {
max_pagination: default_max_pagination(),
default_pagination: default_default_pagination(),
max_repo_name_len: default_repo_name_len(),
max_description_len: default_description_len(),
max_website_len: default_website_len(),
max_topic_len: default_topic_len(),
max_branch_name_len: default_branch_name_len(),
max_tag_name_len: default_tag_name_len(),
max_release_body_len: default_release_body_len(),
default_branch: default_default_branch(),
default_object_format: default_object_format(),
git_storage_root: default_git_dir(),
lfs_storage_root: default_lfs_dir(),
branch_protection_priority_max: default_branch_protection_priority_max(),
max_topics_per_repo: default_max_topics(),
max_pr_title_len: default_pr_title_len(),
max_pr_body_len: default_pr_body_len(),
}
}
}
pub type SharedRepoConfig = Arc<RepoConfig>;