func CommitsHandler()

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)
}