diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b5124f8..51f1f4f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -47,6 +47,9 @@ jobs: with: context: . builder: ${{ steps.buildx.outputs.name }} + build-args: | + version={{version}} + build=${{ github.sha }} platforms: linux/arm64 file: ./k8s/Dockerfile tags: ${{ steps.meta.outputs.tags }} diff --git a/internal/tygon/http.go b/internal/tygon/http.go index 1a06e48..70ef92b 100644 --- a/internal/tygon/http.go +++ b/internal/tygon/http.go @@ -5,7 +5,8 @@ import ( "net/http" bugLog "github.com/bugfixes/go-bugfixes/logs" - "github.com/mitchellh/mapstructure" + "github.com/google/go-github/v39/github" + "github.com/mitchellh/mapstructure" ) func jsonError(w http.ResponseWriter, msg string, errs error) { @@ -22,16 +23,11 @@ func jsonError(w http.ResponseWriter, msg string, errs error) { } func (t Tygon) ParsePayload(w http.ResponseWriter, r *http.Request) { - var decodedJSON interface{} - - if err := json.NewDecoder(r.Body).Decode(&decodedJSON); err != nil { - jsonError(w, "Invalid JSON", err) - return - } + var decodedPing github.Hook // it's a ping event - if err := mapstructure.Decode(decodedJSON, &t.PingEvent); err == nil { - if err := t.PingEventTriggered(); err != nil { + if err := json.NewDecoder(r.Body).Decode(&decodedPing); err == nil { + if err := t.PingEventTriggered(decodedPing); err != nil { jsonError(w, "Ping event failed", err) return } @@ -40,7 +36,12 @@ func (t Tygon) ParsePayload(w http.ResponseWriter, r *http.Request) { } w.WriteHeader(http.StatusOK) - bugLog.Infof("Request: %+v", decodedJSON) + var unknownPayload interface{} + if err := json.NewDecoder(r.Body).Decode(&unknownPayload); err != nil { + jsonError(w, "unknown payload", err) + return + } + bugLog.Infof("Request: %+v", unknownPayload) for name, values := range r.Header { for _, value := range values { bugLog.Infof("Header: %s: %s", name, value) diff --git a/internal/tygon/tygon.go b/internal/tygon/tygon.go index ca5c212..fd9f203 100644 --- a/internal/tygon/tygon.go +++ b/internal/tygon/tygon.go @@ -18,10 +18,10 @@ func NewTygon(cfg *config.Config) *Tygon { } } -func (t *Tygon) PingEventTriggered() error { +func (t *Tygon) PingEventTriggered(p *github.Hook) error { pingConfig := PingEventConfig{} - if err := mapstructure.Decode(t.PingEvent.Config, &pingConfig); err != nil { + if err := mapstructure.Decode(p.Config, &pingConfig); err != nil { bugLog.Debugf("failed to decode ping config: %+v", err) return err } diff --git a/k8s/service.yml b/k8s/service.yml index ab73a10..b003cee 100644 --- a/k8s/service.yml +++ b/k8s/service.yml @@ -19,7 +19,7 @@ spec: - name: regcred containers: - name: tygon - image: ghcr.io/k8sdeploy/tygon:0.2.0 + image: ghcr.io/k8sdeploy/tygon:0.2.1 imagePullPolicy: IfNotPresent ports: - containerPort: 3000