refactor: files.required -> health-check.required-files
All checks were successful
build / build (push) Successful in 1m40s
build / trigger-build-image (push) Successful in 10s

This commit is contained in:
张泊明518370910136 2025-07-01 00:35:42 -04:00
parent 7e6ee1b63e
commit 8f96115e6e
GPG Key ID: D47306D7062CDA9D
3 changed files with 13 additions and 9 deletions

View File

@ -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

View File

@ -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)}",
] ]

View File

@ -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"]