JOJ3/pkg/healthcheck/all.go
王韵晨520370910012 8b76780c98
Some checks failed
build / build (pull_request) Failing after 29m57s
build / build (push) Failing after 4m11s
build / trigger-build-image (push) Has been skipped
build / trigger-build-image (pull_request) Has been cancelled
chore: rename whitelistedCharsCSV to whitelistedChars
2026-04-17 08:27:43 -07:00

78 lines
2.1 KiB
Go

// Package healthcheck provides a set of health checks for a repository.
package healthcheck
import (
"fmt"
"strings"
)
type Result struct {
Msg string
Failed bool
}
func All(
rootDir, checkFileNameList, checkFileSumList, whitelistedChars,
allowedDomainList, actorCsvPath string,
metaFile []string, repoSize float64,
) (res Result) {
var err error
err = RepoSize(rootDir, repoSize)
if err != nil {
res.Msg += fmt.Sprintf("### Repo Size Check Failed:\n%s\n", err.Error())
res.Failed = true
} else {
res.Msg += "### Repo Size Check Passed\n"
}
err = RepoLFS(rootDir)
if err != nil {
res.Msg += fmt.Sprintf("### Repo LFS Check Failed:\n%s\n", err.Error())
res.Failed = true
} else {
res.Msg += "### Repo LFS Check Passed\n"
}
err = ForbiddenCheck(rootDir)
if err != nil {
res.Msg += fmt.Sprintf("### Forbidden File Check Failed:\n%s\n", err.Error())
res.Failed = true
} else {
res.Msg += "### Forbidden File Check Passed\n"
}
err = MetaCheck(rootDir, metaFile)
if err != nil {
res.Msg += fmt.Sprintf("### Meta File Check Failed:\n%s\n", err.Error())
res.Failed = true
} else {
res.Msg += "### Meta File Check Passed\n"
}
err = NonASCIIFiles(rootDir, whitelistedChars)
if err != nil {
res.Msg += fmt.Sprintf("### Non-ASCII Characters File Check Failed:\n%s\n", err.Error())
res.Failed = true
} else {
res.Msg += "### Non-ASCII Characters File Check Passed\n"
}
err = NonASCIIMsg(rootDir)
if err != nil {
res.Msg += fmt.Sprintf("### Non-ASCII Characters Commit Message Check Failed:\n%s\n", err.Error())
res.Failed = true
} else {
res.Msg += "### Non-ASCII Characters Commit Message Check Passed\n"
}
err = VerifyFiles(rootDir, checkFileNameList, checkFileSumList)
if err != nil {
res.Msg += fmt.Sprintf("### Repo File Check Failed:\n%s\n", err.Error())
res.Failed = true
} else {
res.Msg += "### Repo File Check Passed\n"
}
err = AuthorEmailCheck(rootDir, strings.Split(allowedDomainList, ","), actorCsvPath)
if err != nil {
res.Msg += fmt.Sprintf("### Author Email Check Failed:\n%s\n", err.Error())
res.Failed = true
} else {
res.Msg += "### Author Email Check Passed\n"
}
return res
}