fix: need to convert struct to a map to inject installation id

This commit is contained in:
Derrick Hammer 2024-02-11 23:07:14 -05:00
parent d5ac5e4b3c
commit ae9b036cb5
Signed by: pcfreak30
GPG Key ID: C997C339BE476FF2
2 changed files with 12 additions and 4 deletions

View File

@ -2,10 +2,11 @@ package api
import ( import (
"bytes" "bytes"
"code.gitea.io/gitea/modules/structs" giteaTypes "code.gitea.io/gitea/modules/structs"
"encoding/json" "encoding/json"
"git.lumeweb.com/LumeWeb/gitea-github-proxy/config" "git.lumeweb.com/LumeWeb/gitea-github-proxy/config"
"git.lumeweb.com/LumeWeb/gitea-github-proxy/db/model" "git.lumeweb.com/LumeWeb/gitea-github-proxy/db/model"
"github.com/fatih/structs"
"go.uber.org/zap" "go.uber.org/zap"
"gorm.io/gorm" "gorm.io/gorm"
"io" "io"
@ -28,7 +29,7 @@ func NewWebhookManager(cfg *config.Config, db *gorm.DB, logger *zap.Logger) *Web
return &WebhookManager{config: cfg, db: db, logger: logger} return &WebhookManager{config: cfg, db: db, logger: logger}
} }
func (whm *WebhookManager) HandlePullRequest(request *structs.PullRequestPayload, r *http.Request) { func (whm *WebhookManager) HandlePullRequest(request *giteaTypes.PullRequestPayload, r *http.Request) {
ghEvent := convertPullRequestEvent(request) ghEvent := convertPullRequestEvent(request)
githubAction := translatePrAction(request.Action) githubAction := translatePrAction(request.Action)
r.Header.Set("X-GitHub-Event", githubAction) r.Header.Set("X-GitHub-Event", githubAction)
@ -44,7 +45,14 @@ func (whm *WebhookManager) sendWebhooks(request interface{}, r *http.Request) {
} }
for _, app := range apps { for _, app := range apps {
go func(app model.Apps) { go func(app model.Apps) {
payloadBytes, err := json.Marshal(request)
rawMap := structs.New(request).Map()
rawMap["installation"] = struct {
ID uint `json:"id"`
}{ID: app.ID}
payloadBytes, err := json.Marshal(rawMap)
if err != nil { if err != nil {
whm.logger.Error("Failed to marshal payload", zap.Error(err)) whm.logger.Error("Failed to marshal payload", zap.Error(err))
return return

2
go.mod
View File

@ -10,7 +10,6 @@ require (
github.com/google/go-github/v59 v59.0.0 github.com/google/go-github/v59 v59.0.0
github.com/gorilla/mux v1.8.1 github.com/gorilla/mux v1.8.1
github.com/iancoleman/strcase v0.3.0 github.com/iancoleman/strcase v0.3.0
github.com/mitchellh/mapstructure v1.5.0
github.com/spf13/viper v1.18.2 github.com/spf13/viper v1.18.2
go.uber.org/fx v1.20.1 go.uber.org/fx v1.20.1
go.uber.org/zap v1.26.0 go.uber.org/zap v1.26.0
@ -32,6 +31,7 @@ require (
github.com/json-iterator/go v1.1.12 // indirect github.com/json-iterator/go v1.1.12 // indirect
github.com/magiconair/properties v1.8.7 // indirect github.com/magiconair/properties v1.8.7 // indirect
github.com/mattn/go-sqlite3 v1.14.17 // indirect github.com/mattn/go-sqlite3 v1.14.17 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect