prow/cmd/deck/main.go
func handleJobHistory(o options, cfg config.Getter, gcsClient *storage.Client) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		setHeadersNoCaching(w)
		tmpl, err := getJobHistory(r.URL, cfg(), gcsClient)
		if err != nil {
			msg := fmt.Sprintf("failed to get job history: %v", err)
			logrus.WithField("url", r.URL).Error(msg)
			http.Error(w, msg, http.StatusInternalServerError)
			return
		}
		handleSimpleTemplate(o, cfg, "job-history.html", tmpl)(w, r)
	}
}
func handleJobHistory(o options, cfg config.Getter, gcsClient *storage.Client) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		setHeadersNoCaching(w)
		tmpl, err := getJobHistory(r.URL, cfg(), gcsClient)
		if err != nil {
			msg := fmt.Sprintf("failed to get job history: %v", err)
			logrus.WithField("url", r.URL).Error(msg)
			http.Error(w, msg, http.StatusInternalServerError)
			return
		}
		handleSimpleTemplate(o, cfg, "job-history.html", tmpl)(w, r)
	}
}
func handleJobHistory ( o options , cfg config . Getter , gcsClient * storage . Client ) http . HandlerFunc { return func ( w http . ResponseWriter , r * http . Request ) { setHeadersNoCaching ( w ) tmpl , err := getJobHistory ( r . URL , cfg ( ) , gcsClient ) if err != nil { msg := fmt . Sprintf ( " " , err ) logrus . WithField ( " " , r . URL ) . Error ( msg ) http . Error ( w , msg , http . StatusInternalServerError ) return } handleSimpleTemplate ( o , cfg , " " , tmpl ) ( w , r ) } }
// handleJobHistory handles requests to get the history of a given job
// The url must look like this for presubmits:
//
// /job-history/<gcs-bucket-name>/pr-logs/directory/<job-name>
//
// Example:
// - /job-history/kubernetes-jenkins/pr-logs/directory/pull-test-infra-verify-gofmt
//
// For periodics or postsubmits, the url must look like this:
//
// /job-history/<gcs-bucket-name>/logs/<job-name>
//
// Example:
// - /job-history/kubernetes-jenkins/logs/ci-kubernetes-e2e-prow-canary
handleJobHistory handles requests to get the history of a given job The url must look like this for presubmits : / job - history / <gcs - bucket - name > / pr - logs / directory / <job - name > Example : - / job - history / kubernetes - jenkins / pr - logs / directory / pull - test - infra - verify - gofmt For periodics or postsubmits the url must look like this : / job - history / <gcs - bucket - name > / logs / <job - name > Example : - / job - history / kubernetes - jenkins / logs / ci - kubernetes - e2e - prow - canary