in cmd/checker/checker.go [72:110]
func (gc *gerritChecker) PostChecker(repo, language string, update bool) (*gerrit.CheckerInfo, error) {
hash := sha1.New()
hash.Write([]byte(repo))
uuid := fmt.Sprintf("%s:%s.%x", checkerScheme, language, hash.Sum(nil))
cfg, ok := linter.GetFormatter(language)
if !ok {
return nil, fmt.Errorf("no checker for language %q", language)
}
in := gerrit.CheckerInput{
UUID: uuid,
Name: language + " formatting",
Repository: repo,
Description: "check source code formatting.",
Status: "ENABLED",
Query: cfg.Query,
}
body, err := json.Marshal(&in)
if err != nil {
return nil, err
}
path := "a/plugins/checks/checkers/"
if update {
path += uuid
}
content, err := gc.server.PostPath(path, "application/json", body)
if err != nil {
return nil, err
}
out := gerrit.CheckerInfo{}
if err := gerrit.Unmarshal(content, &out); err != nil {
return nil, err
}
return &out, nil
}