refactor: files.required -> health-check.required-files
This commit is contained in:
parent
7e6ee1b63e
commit
8f96115e6e
|
@ -9,7 +9,6 @@ from joj3_config_generator.models.common import Memory
|
||||||
|
|
||||||
class Files(BaseModel):
|
class Files(BaseModel):
|
||||||
required: List[str] = []
|
required: List[str] = []
|
||||||
# TODO: remove immutable in the future
|
|
||||||
immutable: List[str] = []
|
immutable: List[str] = []
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,6 +44,9 @@ class HealthCheck(BaseModel):
|
||||||
Path("immutable"),
|
Path("immutable"),
|
||||||
validation_alias=AliasChoices("immutable-path", "immutable_path"),
|
validation_alias=AliasChoices("immutable-path", "immutable_path"),
|
||||||
)
|
)
|
||||||
|
required_files: List[str] = Field(
|
||||||
|
[], validation_alias=AliasChoices("required-files", "required_files")
|
||||||
|
)
|
||||||
|
|
||||||
@field_validator("max_size", mode="before")
|
@field_validator("max_size", mode="before")
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -76,7 +78,6 @@ class Config(BaseModel):
|
||||||
"",
|
"",
|
||||||
validation_alias=AliasChoices("grading-repo-name", "grading_repo_name"),
|
validation_alias=AliasChoices("grading-repo-name", "grading_repo_name"),
|
||||||
)
|
)
|
||||||
files: Files = Files()
|
|
||||||
sandbox_token: str = Field(
|
sandbox_token: str = Field(
|
||||||
"", validation_alias=AliasChoices("sandbox-token", "sandbox_token")
|
"", validation_alias=AliasChoices("sandbox-token", "sandbox_token")
|
||||||
)
|
)
|
||||||
|
@ -89,7 +90,8 @@ class Config(BaseModel):
|
||||||
health_check: HealthCheck = Field(
|
health_check: HealthCheck = Field(
|
||||||
HealthCheck(), validation_alias=AliasChoices("health-check", "health_check")
|
HealthCheck(), validation_alias=AliasChoices("health-check", "health_check")
|
||||||
)
|
)
|
||||||
# TODO: remove max_size, health_check_score, and immutable_path in the future
|
# TODO: remove files, max_size, health_check_score, and immutable_path in the future
|
||||||
|
files: Files = Files()
|
||||||
max_size: float = Field(
|
max_size: float = Field(
|
||||||
10, ge=0, validation_alias=AliasChoices("max-size", "max_size")
|
10, ge=0, validation_alias=AliasChoices("max-size", "max_size")
|
||||||
)
|
)
|
||||||
|
@ -126,4 +128,9 @@ class Config(BaseModel):
|
||||||
self.health_check.max_size = Memory(f"{self.max_size}m")
|
self.health_check.max_size = Memory(f"{self.max_size}m")
|
||||||
if "immutable_path" in self.model_fields_set:
|
if "immutable_path" in self.model_fields_set:
|
||||||
self.health_check.immutable_path = self.immutable_path
|
self.health_check.immutable_path = self.immutable_path
|
||||||
|
if (
|
||||||
|
"files" in self.model_fields_set
|
||||||
|
and "required" in self.files.model_fields_set
|
||||||
|
):
|
||||||
|
self.health_check.required_files = self.files.required
|
||||||
return self
|
return self
|
||||||
|
|
|
@ -125,7 +125,7 @@ def get_health_check_args(repo_conf: repo.Config) -> List[str]:
|
||||||
"/usr/local/bin/repo-health-checker",
|
"/usr/local/bin/repo-health-checker",
|
||||||
"-root=.",
|
"-root=.",
|
||||||
f"-repoSize={str(repo_conf.health_check.max_size / 1024 / 1024)}", # B -> MB
|
f"-repoSize={str(repo_conf.health_check.max_size / 1024 / 1024)}", # B -> MB
|
||||||
*[f"-meta={meta}" for meta in repo_conf.files.required],
|
*[f"-meta={meta}" for meta in repo_conf.health_check.required_files],
|
||||||
f"-checkFileSumList={','.join(file_sums)}",
|
f"-checkFileSumList={','.join(file_sums)}",
|
||||||
f"-checkFileNameList={','.join(file_names)}",
|
f"-checkFileNameList={','.join(file_names)}",
|
||||||
]
|
]
|
||||||
|
|
|
@ -5,14 +5,11 @@ sandbox-token = "test"
|
||||||
max-total-score = 1000
|
max-total-score = 1000
|
||||||
|
|
||||||
health-check.max-size = "50.5m"
|
health-check.max-size = "50.5m"
|
||||||
health-check.immutable_path = "immutable"
|
health-check.immutable-path = "immutable"
|
||||||
|
health-check.required-files = ["README.md", "Changelog.md"]
|
||||||
|
|
||||||
# for tests
|
# for tests
|
||||||
[groups]
|
[groups]
|
||||||
name = ["joj", "run"]
|
name = ["joj", "run"]
|
||||||
max-count = [1000, 1000]
|
max-count = [1000, 1000]
|
||||||
time-period-hour = [24, 24]
|
time-period-hour = [24, 24]
|
||||||
|
|
||||||
[files]
|
|
||||||
required = ["README.md", "Changelog.md"]
|
|
||||||
immutable = [".gitignore", ".gitattributes",".gitea/workflows/push.yaml", ".gitea/workflows/release.yaml"]
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user