Skip to content

Commit 3060edb

Browse files
fix: empty webhook payload fix for PR based CI pipeline (#5879)
* use parsedDataId instead of payload_data_id * fix: send webhook data to git-sensor in nats event * fix: send webhook data to git-sensor in nats event
1 parent 9eabc12 commit 3060edb

File tree

5 files changed

+19
-29
lines changed

5 files changed

+19
-29
lines changed

api/restHandler/WebhookEventHandler.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package restHandler
1818

1919
import (
2020
"github.com/devtron-labs/devtron/pkg/eventProcessor/out"
21+
"github.com/devtron-labs/devtron/pkg/eventProcessor/out/bean"
2122
"github.com/devtron-labs/devtron/pkg/pipeline/types"
2223
"io/ioutil"
2324
"net/http"
@@ -119,7 +120,7 @@ func (impl WebhookEventHandlerImpl) OnWebhookEvent(w http.ResponseWriter, r *htt
119120
}
120121

121122
// make request to handle this webhook
122-
webhookEvent := &pipeline.WebhookEventDataRequest{
123+
webhookEvent := &bean.CIPipelineGitWebhookEvent{
123124
GitHostId: gitHostId,
124125
GitHostName: gitHostName,
125126
EventType: eventType,
@@ -135,7 +136,7 @@ func (impl WebhookEventHandlerImpl) OnWebhookEvent(w http.ResponseWriter, r *htt
135136
}
136137

137138
// write event
138-
err = impl.ciPipelineEventPublishService.PublishGitWebhookEvent(gitHostId, gitHostName, eventType, string(requestBodyBytes))
139+
err = impl.ciPipelineEventPublishService.PublishGitWebhookEvent(webhookEvent)
139140
if err != nil {
140141
impl.logger.Errorw("Error while handling webhook in git-sensor", "err", err)
141142
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)

api/restHandler/app/pipeline/webhook/WebhookDataRestHandler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ func (impl WebhookDataRestHandlerImpl) GetWebhookPayloadFilterDataForPipelineMat
185185

186186
// set payload json
187187
if response != nil && response.PayloadId != 0 {
188-
webhookEventData, err := impl.webhookEventDataConfig.GetById(int(response.PayloadId))
188+
webhookEventData, err := impl.webhookEventDataConfig.GetById(response.PayloadId)
189189
if err != nil {
190190
impl.logger.Errorw("error in getting webhook payload data", "err", err)
191191
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)

pkg/eventProcessor/out/CIPipelineEventPublishService.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
)
2525

2626
type CIPipelineEventPublishService interface {
27-
PublishGitWebhookEvent(gitHostId int, gitHostName string, eventType, requestJSON string) error
27+
PublishGitWebhookEvent(event *bean.CIPipelineGitWebhookEvent) error
2828
}
2929

3030
type CIPipelineEventPublishServiceImpl struct {
@@ -40,13 +40,7 @@ func NewCIPipelineEventPublishServiceImpl(logger *zap.SugaredLogger,
4040
}
4141
}
4242

43-
func (impl *CIPipelineEventPublishServiceImpl) PublishGitWebhookEvent(gitHostId int, gitHostName string, eventType, requestJSON string) error {
44-
event := &bean.CIPipelineGitWebhookEvent{
45-
GitHostId: gitHostId,
46-
GitHostName: gitHostName,
47-
EventType: eventType,
48-
RequestPayloadJson: requestJSON,
49-
}
43+
func (impl *CIPipelineEventPublishServiceImpl) PublishGitWebhookEvent(event *bean.CIPipelineGitWebhookEvent) error {
5044
body, err := json.Marshal(event)
5145
if err != nil {
5246
impl.logger.Errorw("error in marshaling git webhook event", "err", err, "event", event)

pkg/eventProcessor/out/bean/bean.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package bean
1818

1919
import (
2020
bean4 "github.com/devtron-labs/devtron/pkg/deployment/deployedApp/bean"
21+
"time"
2122
)
2223

2324
type BulkTriggerRequest struct {
@@ -46,8 +47,10 @@ type CdPipelineDeleteEvent struct {
4647
}
4748

4849
type CIPipelineGitWebhookEvent struct {
49-
GitHostId int `json:"gitHostId"`
50-
GitHostName string `json:"gitHostName"`
51-
EventType string `json:"eventType"`
52-
RequestPayloadJson string `json:"requestPayloadJson"`
50+
PayloadId int `json:"payloadId"`
51+
GitHostId int `json:"gitHostId"`
52+
GitHostName string `json:"gitHostName"`
53+
EventType string `json:"eventType"`
54+
RequestPayloadJson string `json:"requestPayloadJson"`
55+
CreatedOn time.Time `json:"createdOn"`
5356
}

pkg/pipeline/WebhookEventDataConfig.go

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@ package pipeline
1818

1919
import (
2020
"github.com/devtron-labs/devtron/internal/sql/repository"
21+
"github.com/devtron-labs/devtron/pkg/eventProcessor/out/bean"
2122
"go.uber.org/zap"
2223
"time"
2324
)
2425

2526
type WebhookEventDataConfig interface {
26-
Save(webhookEventDataRequest *WebhookEventDataRequest) error
27-
GetById(payloadId int) (*WebhookEventDataRequest, error)
27+
Save(webhookEventDataRequest *bean.CIPipelineGitWebhookEvent) error
28+
GetById(payloadId int) (*bean.CIPipelineGitWebhookEvent, error)
2829
}
2930

3031
type WebhookEventDataConfigImpl struct {
@@ -39,16 +40,7 @@ func NewWebhookEventDataConfigImpl(logger *zap.SugaredLogger, webhookEventDataRe
3940
}
4041
}
4142

42-
type WebhookEventDataRequest struct {
43-
PayloadId int `json:"payloadId"`
44-
GitHostId int `json:"gitHostId"`
45-
GitHostName string `json:"gitHostName"`
46-
EventType string `json:"eventType"`
47-
RequestPayloadJson string `json:"requestPayloadJson"`
48-
CreatedOn time.Time `json:"createdOn"`
49-
}
50-
51-
func (impl WebhookEventDataConfigImpl) Save(webhookEventDataRequest *WebhookEventDataRequest) error {
43+
func (impl WebhookEventDataConfigImpl) Save(webhookEventDataRequest *bean.CIPipelineGitWebhookEvent) error {
5244
impl.logger.Debug("save event data request")
5345

5446
webhookEventDataRequestSql := &repository.WebhookEventData{
@@ -70,7 +62,7 @@ func (impl WebhookEventDataConfigImpl) Save(webhookEventDataRequest *WebhookEven
7062
return nil
7163
}
7264

73-
func (impl WebhookEventDataConfigImpl) GetById(payloadId int) (*WebhookEventDataRequest, error) {
65+
func (impl WebhookEventDataConfigImpl) GetById(payloadId int) (*bean.CIPipelineGitWebhookEvent, error) {
7466
impl.logger.Debug("get webhook payload request")
7567

7668
webhookEventData, err := impl.webhookEventDataRepository.GetById(payloadId)
@@ -79,7 +71,7 @@ func (impl WebhookEventDataConfigImpl) GetById(payloadId int) (*WebhookEventData
7971
return nil, err
8072
}
8173

82-
webhookEventDataRequest := &WebhookEventDataRequest{
74+
webhookEventDataRequest := &bean.CIPipelineGitWebhookEvent{
8375
RequestPayloadJson: webhookEventData.PayloadJson,
8476
}
8577

0 commit comments

Comments
 (0)