70 lines
1.9 KiB
Go
70 lines
1.9 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, allowedDomainList string,
|
|
metaFile []string, repoSize float64,
|
|
) (res Result) {
|
|
var err error
|
|
err = RepoSize(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 = 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)
|
|
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, ","))
|
|
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
|
|
}
|