Compare commits
2 Commits
2255b1f158
...
b11c8cbcbf
Author | SHA1 | Date |
---|---|---|
Urko. | b11c8cbcbf | |
Urko. | 2ff3299ad7 |
|
@ -0,0 +1,19 @@
|
||||||
|
BINARY_DIR=bin
|
||||||
|
BINARY_NAME=webhook-listener
|
||||||
|
COVERAGE_DIR=coverage
|
||||||
|
|
||||||
|
lint:
|
||||||
|
golangci-lint run ./...
|
||||||
|
goreportcard:
|
||||||
|
goreportcard-cli -v
|
||||||
|
test:
|
||||||
|
go test ./...
|
||||||
|
test-coverage:
|
||||||
|
rm -rf ${COVERAGE_DIR}
|
||||||
|
mkdir ${COVERAGE_DIR}
|
||||||
|
go test -v -coverprofile ${COVERAGE_DIR}/cover.out ./...
|
||||||
|
go tool cover -html ${COVERAGE_DIR}/cover.out -o ${COVERAGE_DIR}/cover.html
|
||||||
|
build:
|
||||||
|
rm -rf ${BINARY_DIR}
|
||||||
|
mkdir ${BINARY_DIR}
|
||||||
|
env GOOS=linux CGO_ENABLED=0 GOARCH=amd64 go build -o ./${BINARY_DIR}/${BINARY_NAME} main.go
|
28
main.go
28
main.go
|
@ -15,9 +15,13 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
// Get root path
|
cfgFile := os.Getenv("CONFIG_FILE")
|
||||||
_, filename, _, _ := runtime.Caller(0)
|
if cfgFile == "" {
|
||||||
cfg, err := config.LoadConfig(path.Join(path.Dir(filename), "configs", "app.yml"))
|
// Get root path
|
||||||
|
_, filename, _, _ := runtime.Caller(0)
|
||||||
|
cfgFile = path.Join(path.Dir(filename), "configs", "app.yml")
|
||||||
|
}
|
||||||
|
cfg, err := config.LoadConfig(cfgFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Error loading config: %v", err)
|
log.Fatalf("Error loading config: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -36,7 +40,6 @@ func handlePayload(secret string, scripts map[string]config.ConfigScript) func(w
|
||||||
defer r.Body.Close()
|
defer r.Body.Close()
|
||||||
|
|
||||||
authHeader := r.Header.Get("Authorization")
|
authHeader := r.Header.Get("Authorization")
|
||||||
log.Println("authHeader", authHeader)
|
|
||||||
if authHeader != secret {
|
if authHeader != secret {
|
||||||
http.Error(w, "Signatures didn't match", http.StatusUnauthorized)
|
http.Error(w, "Signatures didn't match", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
|
@ -53,22 +56,17 @@ func handlePayload(secret string, scripts map[string]config.ConfigScript) func(w
|
||||||
http.Error(w, "not found", http.StatusNotFound)
|
http.Error(w, "not found", http.StatusNotFound)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Println("body", body)
|
|
||||||
// Parse the JSON payload
|
|
||||||
var payload interface{}
|
var payload interface{}
|
||||||
err = json.Unmarshal(body, &payload)
|
if err = json.Unmarshal(body, &payload); err != nil {
|
||||||
if err != nil {
|
|
||||||
http.Error(w, "Failed to parse JSON payload", http.StatusBadRequest)
|
http.Error(w, "Failed to parse JSON payload", http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Do something with the payload
|
go func() {
|
||||||
fmt.Fprintf(w, "I got some JSON: %v", payload)
|
if err := execute(scr.BinaryPath, scr.ScriptPath); err != nil {
|
||||||
|
log.Println(err)
|
||||||
if err := execute(scr.BinaryPath, scr.ScriptPath); err != nil {
|
}
|
||||||
panic(err)
|
}()
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue