Fix some linting issues and add verify-vendor

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
This commit is contained in:
Gabriel Adrian Samfira 2023-01-20 21:54:59 +02:00
parent 9c50674cc6
commit 687c48127b
No known key found for this signature in database
GPG key ID: 7D073DCC2C074CB5
7 changed files with 268 additions and 126 deletions

View file

@ -4,6 +4,9 @@ IMAGE_TAG = garm-build
USER_ID=$(shell ((docker --version | grep -q podman) && echo "0" || id -u)) USER_ID=$(shell ((docker --version | grep -q podman) && echo "0" || id -u))
USER_GROUP=$(shell ((docker --version | grep -q podman) && echo "0" || id -g)) USER_GROUP=$(shell ((docker --version | grep -q podman) && echo "0" || id -g))
ROOTDIR=$(dir $(abspath $(lastword $(MAKEFILE_LIST))))
GO ?= go
default: build-static default: build-static
@ -17,3 +20,11 @@ build-static:
.PHONY: test .PHONY: test
test: test:
go test -race -mod=vendor -tags testing -v $(TEST_ARGS) -timeout=15m -parallel=4 -count=1 ./... go test -race -mod=vendor -tags testing -v $(TEST_ARGS) -timeout=15m -parallel=4 -count=1 ./...
verify-vendor: ## verify if all the go.mod/go.sum files are up-to-date
$(eval TMPDIR := $(shell mktemp -d))
@cp -R ${ROOTDIR} ${TMPDIR}
@(cd ${TMPDIR}/garm && ${GO} mod tidy)
@diff -r -u -q ${ROOTDIR} ${TMPDIR}/garm
@rm -rf ${TMPDIR}

View file

@ -16,7 +16,7 @@ package controllers
import ( import (
"encoding/json" "encoding/json"
"io/ioutil" "io"
"log" "log"
"net/http" "net/http"
@ -79,29 +79,14 @@ func handleError(w http.ResponseWriter, err error) {
apiErr.Details = "" apiErr.Details = ""
} }
json.NewEncoder(w).Encode(apiErr) if err := json.NewEncoder(w).Encode(apiErr); err != nil {
} log.Printf("failed to encode response: %q", err)
func (a *APIController) authenticateHook(body []byte, headers http.Header) error {
// signature := headers.Get("X-Hub-Signature-256")
hookType := headers.Get("X-Github-Hook-Installation-Target-Type")
var workflowJob runnerParams.WorkflowJob
if err := json.Unmarshal(body, &workflowJob); err != nil {
return gErrors.NewBadRequestError("invalid post body: %s", err)
} }
switch hookType {
case "repository":
case "organization":
default:
return gErrors.NewBadRequestError("invalid hook type: %s", hookType)
}
return nil
} }
func (a *APIController) handleWorkflowJobEvent(w http.ResponseWriter, r *http.Request) { func (a *APIController) handleWorkflowJobEvent(w http.ResponseWriter, r *http.Request) {
defer r.Body.Close() defer r.Body.Close()
body, err := ioutil.ReadAll(r.Body) body, err := io.ReadAll(r.Body)
if err != nil { if err != nil {
handleError(w, gErrors.NewBadRequestError("invalid post body: %s", err)) handleError(w, gErrors.NewBadRequestError("invalid post body: %s", err))
return return
@ -137,7 +122,9 @@ func (a *APIController) WSHandler(writer http.ResponseWriter, req *http.Request)
ctx := req.Context() ctx := req.Context()
if !auth.IsAdmin(ctx) { if !auth.IsAdmin(ctx) {
writer.WriteHeader(http.StatusForbidden) writer.WriteHeader(http.StatusForbidden)
writer.Write([]byte("you need admin level access to view logs")) if _, err := writer.Write([]byte("you need admin level access to view logs")); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -177,7 +164,9 @@ func (a *APIController) NotFoundHandler(w http.ResponseWriter, r *http.Request)
} }
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(apiErr) if err := json.NewEncoder(w).Encode(apiErr); err != nil {
log.Printf("failet to write response: %q", err)
}
} }
// LoginHandler returns a jwt token // LoginHandler returns a jwt token
@ -206,7 +195,9 @@ func (a *APIController) LoginHandler(w http.ResponseWriter, r *http.Request) {
return return
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(runnerParams.JWTResponse{Token: tokenString}) if err := json.NewEncoder(w).Encode(runnerParams.JWTResponse{Token: tokenString}); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) FirstRunHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) FirstRunHandler(w http.ResponseWriter, r *http.Request) {
@ -230,7 +221,9 @@ func (a *APIController) FirstRunHandler(w http.ResponseWriter, r *http.Request)
return return
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(newUser) if err := json.NewEncoder(w).Encode(newUser); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListCredentials(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListCredentials(w http.ResponseWriter, r *http.Request) {
@ -242,7 +235,9 @@ func (a *APIController) ListCredentials(w http.ResponseWriter, r *http.Request)
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(creds) if err := json.NewEncoder(w).Encode(creds); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListProviders(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListProviders(w http.ResponseWriter, r *http.Request) {
@ -254,5 +249,7 @@ func (a *APIController) ListProviders(w http.ResponseWriter, r *http.Request) {
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(providers) if err := json.NewEncoder(w).Encode(providers); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }

View file

@ -43,7 +43,9 @@ func (a *APIController) CreateEnterpriseHandler(w http.ResponseWriter, r *http.R
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(enterprise) if err := json.NewEncoder(w).Encode(enterprise); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListEnterprisesHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListEnterprisesHandler(w http.ResponseWriter, r *http.Request) {
@ -57,7 +59,9 @@ func (a *APIController) ListEnterprisesHandler(w http.ResponseWriter, r *http.Re
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(enterprise) if err := json.NewEncoder(w).Encode(enterprise); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) GetEnterpriseByIDHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) GetEnterpriseByIDHandler(w http.ResponseWriter, r *http.Request) {
@ -67,10 +71,12 @@ func (a *APIController) GetEnterpriseByIDHandler(w http.ResponseWriter, r *http.
enterpriseID, ok := vars["enterpriseID"] enterpriseID, ok := vars["enterpriseID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No enterprise ID specified", Details: "No enterprise ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -82,7 +88,9 @@ func (a *APIController) GetEnterpriseByIDHandler(w http.ResponseWriter, r *http.
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(enterprise) if err := json.NewEncoder(w).Encode(enterprise); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) DeleteEnterpriseHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) DeleteEnterpriseHandler(w http.ResponseWriter, r *http.Request) {
@ -92,10 +100,12 @@ func (a *APIController) DeleteEnterpriseHandler(w http.ResponseWriter, r *http.R
enterpriseID, ok := vars["enterpriseID"] enterpriseID, ok := vars["enterpriseID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No enterprise ID specified", Details: "No enterprise ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -117,10 +127,12 @@ func (a *APIController) UpdateEnterpriseHandler(w http.ResponseWriter, r *http.R
enterpriseID, ok := vars["enterpriseID"] enterpriseID, ok := vars["enterpriseID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No enterprise ID specified", Details: "No enterprise ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -138,7 +150,9 @@ func (a *APIController) UpdateEnterpriseHandler(w http.ResponseWriter, r *http.R
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(enterprise) if err := json.NewEncoder(w).Encode(enterprise); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) CreateEnterprisePoolHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) CreateEnterprisePoolHandler(w http.ResponseWriter, r *http.Request) {
@ -148,10 +162,12 @@ func (a *APIController) CreateEnterprisePoolHandler(w http.ResponseWriter, r *ht
enterpriseID, ok := vars["enterpriseID"] enterpriseID, ok := vars["enterpriseID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No enterprise ID specified", Details: "No enterprise ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -170,7 +186,9 @@ func (a *APIController) CreateEnterprisePoolHandler(w http.ResponseWriter, r *ht
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListEnterprisePoolsHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListEnterprisePoolsHandler(w http.ResponseWriter, r *http.Request) {
@ -179,10 +197,12 @@ func (a *APIController) ListEnterprisePoolsHandler(w http.ResponseWriter, r *htt
enterpriseID, ok := vars["enterpriseID"] enterpriseID, ok := vars["enterpriseID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No enterprise ID specified", Details: "No enterprise ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -194,7 +214,10 @@ func (a *APIController) ListEnterprisePoolsHandler(w http.ResponseWriter, r *htt
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pools) if err := json.NewEncoder(w).Encode(pools); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) GetEnterprisePoolHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) GetEnterprisePoolHandler(w http.ResponseWriter, r *http.Request) {
@ -204,10 +227,12 @@ func (a *APIController) GetEnterprisePoolHandler(w http.ResponseWriter, r *http.
poolID, poolOk := vars["poolID"] poolID, poolOk := vars["poolID"]
if !enterpriseOk || !poolOk { if !enterpriseOk || !poolOk {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No enterprise or pool ID specified", Details: "No enterprise or pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -219,7 +244,9 @@ func (a *APIController) GetEnterprisePoolHandler(w http.ResponseWriter, r *http.
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) DeleteEnterprisePoolHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) DeleteEnterprisePoolHandler(w http.ResponseWriter, r *http.Request) {
@ -230,10 +257,12 @@ func (a *APIController) DeleteEnterprisePoolHandler(w http.ResponseWriter, r *ht
poolID, poolOk := vars["poolID"] poolID, poolOk := vars["poolID"]
if !enterpriseOk || !poolOk { if !enterpriseOk || !poolOk {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No enterprise or pool ID specified", Details: "No enterprise or pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -256,10 +285,12 @@ func (a *APIController) UpdateEnterprisePoolHandler(w http.ResponseWriter, r *ht
poolID, poolOk := vars["poolID"] poolID, poolOk := vars["poolID"]
if !enterpriseOk || !poolOk { if !enterpriseOk || !poolOk {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No enterprise or pool ID specified", Details: "No enterprise or pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -278,5 +309,7 @@ func (a *APIController) UpdateEnterprisePoolHandler(w http.ResponseWriter, r *ht
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }

View file

@ -32,10 +32,12 @@ func (a *APIController) ListPoolInstancesHandler(w http.ResponseWriter, r *http.
poolID, ok := vars["poolID"] poolID, ok := vars["poolID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No pool ID specified", Details: "No pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -47,7 +49,9 @@ func (a *APIController) ListPoolInstancesHandler(w http.ResponseWriter, r *http.
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(instances) if err := json.NewEncoder(w).Encode(instances); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) GetInstanceHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) GetInstanceHandler(w http.ResponseWriter, r *http.Request) {
@ -56,10 +60,12 @@ func (a *APIController) GetInstanceHandler(w http.ResponseWriter, r *http.Reques
instanceName, ok := vars["instanceName"] instanceName, ok := vars["instanceName"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No runner name specified", Details: "No runner name specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -71,7 +77,9 @@ func (a *APIController) GetInstanceHandler(w http.ResponseWriter, r *http.Reques
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(instance) if err := json.NewEncoder(w).Encode(instance); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) DeleteInstanceHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) DeleteInstanceHandler(w http.ResponseWriter, r *http.Request) {
@ -80,10 +88,12 @@ func (a *APIController) DeleteInstanceHandler(w http.ResponseWriter, r *http.Req
instanceName, ok := vars["instanceName"] instanceName, ok := vars["instanceName"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No instance name specified", Details: "No instance name specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -103,10 +113,12 @@ func (a *APIController) ListRepoInstancesHandler(w http.ResponseWriter, r *http.
repoID, ok := vars["repoID"] repoID, ok := vars["repoID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No repo ID specified", Details: "No repo ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -118,7 +130,9 @@ func (a *APIController) ListRepoInstancesHandler(w http.ResponseWriter, r *http.
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(instances) if err := json.NewEncoder(w).Encode(instances); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListOrgInstancesHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListOrgInstancesHandler(w http.ResponseWriter, r *http.Request) {
@ -127,10 +141,12 @@ func (a *APIController) ListOrgInstancesHandler(w http.ResponseWriter, r *http.R
orgID, ok := vars["orgID"] orgID, ok := vars["orgID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No org ID specified", Details: "No org ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -142,7 +158,9 @@ func (a *APIController) ListOrgInstancesHandler(w http.ResponseWriter, r *http.R
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(instances) if err := json.NewEncoder(w).Encode(instances); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListEnterpriseInstancesHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListEnterpriseInstancesHandler(w http.ResponseWriter, r *http.Request) {
@ -151,10 +169,12 @@ func (a *APIController) ListEnterpriseInstancesHandler(w http.ResponseWriter, r
enterpriseID, ok := vars["enterpriseID"] enterpriseID, ok := vars["enterpriseID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No enterprise ID specified", Details: "No enterprise ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -166,7 +186,9 @@ func (a *APIController) ListEnterpriseInstancesHandler(w http.ResponseWriter, r
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(instances) if err := json.NewEncoder(w).Encode(instances); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListAllInstancesHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListAllInstancesHandler(w http.ResponseWriter, r *http.Request) {
@ -180,7 +202,9 @@ func (a *APIController) ListAllInstancesHandler(w http.ResponseWriter, r *http.R
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(instances) if err := json.NewEncoder(w).Encode(instances); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) InstanceStatusMessageHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) InstanceStatusMessageHandler(w http.ResponseWriter, r *http.Request) {
@ -214,5 +238,7 @@ func (a *APIController) InstanceGithubRegistrationTokenHandler(w http.ResponseWr
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
w.Write([]byte(token)) if _, err := w.Write([]byte(token)); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }

View file

@ -43,7 +43,9 @@ func (a *APIController) CreateOrgHandler(w http.ResponseWriter, r *http.Request)
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(repo) if err := json.NewEncoder(w).Encode(repo); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListOrgsHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListOrgsHandler(w http.ResponseWriter, r *http.Request) {
@ -57,7 +59,9 @@ func (a *APIController) ListOrgsHandler(w http.ResponseWriter, r *http.Request)
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(orgs) if err := json.NewEncoder(w).Encode(orgs); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) GetOrgByIDHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) GetOrgByIDHandler(w http.ResponseWriter, r *http.Request) {
@ -67,10 +71,12 @@ func (a *APIController) GetOrgByIDHandler(w http.ResponseWriter, r *http.Request
orgID, ok := vars["orgID"] orgID, ok := vars["orgID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No org ID specified", Details: "No org ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -82,7 +88,9 @@ func (a *APIController) GetOrgByIDHandler(w http.ResponseWriter, r *http.Request
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(org) if err := json.NewEncoder(w).Encode(org); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) DeleteOrgHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) DeleteOrgHandler(w http.ResponseWriter, r *http.Request) {
@ -92,10 +100,12 @@ func (a *APIController) DeleteOrgHandler(w http.ResponseWriter, r *http.Request)
orgID, ok := vars["orgID"] orgID, ok := vars["orgID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No org ID specified", Details: "No org ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -117,10 +127,12 @@ func (a *APIController) UpdateOrgHandler(w http.ResponseWriter, r *http.Request)
orgID, ok := vars["orgID"] orgID, ok := vars["orgID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No org ID specified", Details: "No org ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -138,7 +150,9 @@ func (a *APIController) UpdateOrgHandler(w http.ResponseWriter, r *http.Request)
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(org) if err := json.NewEncoder(w).Encode(org); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) CreateOrgPoolHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) CreateOrgPoolHandler(w http.ResponseWriter, r *http.Request) {
@ -148,10 +162,12 @@ func (a *APIController) CreateOrgPoolHandler(w http.ResponseWriter, r *http.Requ
orgID, ok := vars["orgID"] orgID, ok := vars["orgID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No org ID specified", Details: "No org ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -170,7 +186,9 @@ func (a *APIController) CreateOrgPoolHandler(w http.ResponseWriter, r *http.Requ
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListOrgPoolsHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListOrgPoolsHandler(w http.ResponseWriter, r *http.Request) {
@ -179,10 +197,12 @@ func (a *APIController) ListOrgPoolsHandler(w http.ResponseWriter, r *http.Reque
orgID, ok := vars["orgID"] orgID, ok := vars["orgID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No org ID specified", Details: "No org ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -194,7 +214,9 @@ func (a *APIController) ListOrgPoolsHandler(w http.ResponseWriter, r *http.Reque
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pools) if err := json.NewEncoder(w).Encode(pools); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) GetOrgPoolHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) GetOrgPoolHandler(w http.ResponseWriter, r *http.Request) {
@ -204,10 +226,12 @@ func (a *APIController) GetOrgPoolHandler(w http.ResponseWriter, r *http.Request
poolID, poolOk := vars["poolID"] poolID, poolOk := vars["poolID"]
if !repoOk || !poolOk { if !repoOk || !poolOk {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No org or pool ID specified", Details: "No org or pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -219,7 +243,9 @@ func (a *APIController) GetOrgPoolHandler(w http.ResponseWriter, r *http.Request
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) DeleteOrgPoolHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) DeleteOrgPoolHandler(w http.ResponseWriter, r *http.Request) {
@ -230,10 +256,12 @@ func (a *APIController) DeleteOrgPoolHandler(w http.ResponseWriter, r *http.Requ
poolID, poolOk := vars["poolID"] poolID, poolOk := vars["poolID"]
if !orgOk || !poolOk { if !orgOk || !poolOk {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No org or pool ID specified", Details: "No org or pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -256,10 +284,12 @@ func (a *APIController) UpdateOrgPoolHandler(w http.ResponseWriter, r *http.Requ
poolID, poolOk := vars["poolID"] poolID, poolOk := vars["poolID"]
if !orgOk || !poolOk { if !orgOk || !poolOk {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No org or pool ID specified", Details: "No org or pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -278,5 +308,7 @@ func (a *APIController) UpdateOrgPoolHandler(w http.ResponseWriter, r *http.Requ
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }

View file

@ -38,7 +38,9 @@ func (a *APIController) ListAllPoolsHandler(w http.ResponseWriter, r *http.Reque
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pools) if err := json.NewEncoder(w).Encode(pools); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) GetPoolByIDHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) GetPoolByIDHandler(w http.ResponseWriter, r *http.Request) {
@ -48,10 +50,12 @@ func (a *APIController) GetPoolByIDHandler(w http.ResponseWriter, r *http.Reques
poolID, ok := vars["poolID"] poolID, ok := vars["poolID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No pool ID specified", Details: "No pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -65,7 +69,9 @@ func (a *APIController) GetPoolByIDHandler(w http.ResponseWriter, r *http.Reques
pool.RunnerBootstrapTimeout = pool.RunnerTimeout() pool.RunnerBootstrapTimeout = pool.RunnerTimeout()
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) DeletePoolByIDHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) DeletePoolByIDHandler(w http.ResponseWriter, r *http.Request) {
@ -75,10 +81,12 @@ func (a *APIController) DeletePoolByIDHandler(w http.ResponseWriter, r *http.Req
poolID, ok := vars["poolID"] poolID, ok := vars["poolID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No pool ID specified", Details: "No pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -99,10 +107,12 @@ func (a *APIController) UpdatePoolByIDHandler(w http.ResponseWriter, r *http.Req
poolID, ok := vars["poolID"] poolID, ok := vars["poolID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No pool ID specified", Details: "No pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -121,6 +131,7 @@ func (a *APIController) UpdatePoolByIDHandler(w http.ResponseWriter, r *http.Req
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }

View file

@ -43,7 +43,9 @@ func (a *APIController) CreateRepoHandler(w http.ResponseWriter, r *http.Request
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(repo) if err := json.NewEncoder(w).Encode(repo); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListReposHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListReposHandler(w http.ResponseWriter, r *http.Request) {
@ -57,7 +59,9 @@ func (a *APIController) ListReposHandler(w http.ResponseWriter, r *http.Request)
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(repos) if err := json.NewEncoder(w).Encode(repos); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Request) {
@ -67,10 +71,12 @@ func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Reques
repoID, ok := vars["repoID"] repoID, ok := vars["repoID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No repo ID specified", Details: "No repo ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -82,7 +88,9 @@ func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Reques
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(repo) if err := json.NewEncoder(w).Encode(repo); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) DeleteRepoHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) DeleteRepoHandler(w http.ResponseWriter, r *http.Request) {
@ -92,10 +100,12 @@ func (a *APIController) DeleteRepoHandler(w http.ResponseWriter, r *http.Request
repoID, ok := vars["repoID"] repoID, ok := vars["repoID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No repo ID specified", Details: "No repo ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -117,10 +127,12 @@ func (a *APIController) UpdateRepoHandler(w http.ResponseWriter, r *http.Request
repoID, ok := vars["repoID"] repoID, ok := vars["repoID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No repo ID specified", Details: "No repo ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -138,7 +150,9 @@ func (a *APIController) UpdateRepoHandler(w http.ResponseWriter, r *http.Request
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(repo) if err := json.NewEncoder(w).Encode(repo); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) CreateRepoPoolHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) CreateRepoPoolHandler(w http.ResponseWriter, r *http.Request) {
@ -148,10 +162,12 @@ func (a *APIController) CreateRepoPoolHandler(w http.ResponseWriter, r *http.Req
repoID, ok := vars["repoID"] repoID, ok := vars["repoID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No repo ID specified", Details: "No repo ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -170,7 +186,9 @@ func (a *APIController) CreateRepoPoolHandler(w http.ResponseWriter, r *http.Req
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) ListRepoPoolsHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) ListRepoPoolsHandler(w http.ResponseWriter, r *http.Request) {
@ -179,10 +197,12 @@ func (a *APIController) ListRepoPoolsHandler(w http.ResponseWriter, r *http.Requ
repoID, ok := vars["repoID"] repoID, ok := vars["repoID"]
if !ok { if !ok {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No repo ID specified", Details: "No repo ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -194,7 +214,9 @@ func (a *APIController) ListRepoPoolsHandler(w http.ResponseWriter, r *http.Requ
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pools) if err := json.NewEncoder(w).Encode(pools); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) GetRepoPoolHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) GetRepoPoolHandler(w http.ResponseWriter, r *http.Request) {
@ -204,10 +226,12 @@ func (a *APIController) GetRepoPoolHandler(w http.ResponseWriter, r *http.Reques
poolID, poolOk := vars["poolID"] poolID, poolOk := vars["poolID"]
if !repoOk || !poolOk { if !repoOk || !poolOk {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No repo or pool ID specified", Details: "No repo or pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -219,7 +243,9 @@ func (a *APIController) GetRepoPoolHandler(w http.ResponseWriter, r *http.Reques
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }
func (a *APIController) DeleteRepoPoolHandler(w http.ResponseWriter, r *http.Request) { func (a *APIController) DeleteRepoPoolHandler(w http.ResponseWriter, r *http.Request) {
@ -230,10 +256,12 @@ func (a *APIController) DeleteRepoPoolHandler(w http.ResponseWriter, r *http.Req
poolID, poolOk := vars["poolID"] poolID, poolOk := vars["poolID"]
if !repoOk || !poolOk { if !repoOk || !poolOk {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No repo or pool ID specified", Details: "No repo or pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -256,10 +284,12 @@ func (a *APIController) UpdateRepoPoolHandler(w http.ResponseWriter, r *http.Req
poolID, poolOk := vars["poolID"] poolID, poolOk := vars["poolID"]
if !repoOk || !poolOk { if !repoOk || !poolOk {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(params.APIErrorResponse{ if err := json.NewEncoder(w).Encode(params.APIErrorResponse{
Error: "Bad Request", Error: "Bad Request",
Details: "No repo or pool ID specified", Details: "No repo or pool ID specified",
}) }); err != nil {
log.Printf("failed to encode response: %q", err)
}
return return
} }
@ -278,5 +308,7 @@ func (a *APIController) UpdateRepoPoolHandler(w http.ResponseWriter, r *http.Req
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(pool) if err := json.NewEncoder(w).Encode(pool); err != nil {
log.Printf("failed to encode response: %q", err)
}
} }