in reference-api/sources/github/commits.go [73:99]
func CommitsHandler(w http.ResponseWriter, r *http.Request) {
repo := r.URL.Query().Get("repo")
gitRef := r.URL.Query().Get("gitRef")
if repo == "" {
errorEncoder(w, http.StatusBadRequest, "Missing 'repo' query parameter")
return
}
if gitRef == "" {
errorEncoder(w, http.StatusBadRequest, "Missing 'gitRef' query parameter")
return
}
commitHashRegex := regexp.MustCompile(`^[a-fA-F0-9]{7,40}$`)
if !commitHashRegex.MatchString(gitRef) {
errorEncoder(w, http.StatusBadRequest, "Invalid gitRef format: Expected a commit SHA")
return
}
commits, statusCode, err := FetchCommits(repo, gitRef)
if err != nil {
errorEncoder(w, statusCode, err.Error())
return
}
w.Header().Set("Content-Type", "application/json")
responseEncoder(w, statusCode, commits)
}