Declare err and payload to avoid scope issues
This commit is contained in:
+15
-14
@@ -82,6 +82,9 @@ func (hook Webhook) Parse(r *http.Request, events ...Event) (interface{}, error)
|
|||||||
_ = r.Body.Close()
|
_ = r.Body.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
var payload []byte
|
||||||
|
|
||||||
if len(events) == 0 {
|
if len(events) == 0 {
|
||||||
return nil, ErrEventNotSpecifiedToParse
|
return nil, ErrEventNotSpecifiedToParse
|
||||||
}
|
}
|
||||||
@@ -95,15 +98,13 @@ func (hook Webhook) Parse(r *http.Request, events ...Event) (interface{}, error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
gitLabEvent := Event(event)
|
gitLabEvent := Event(event)
|
||||||
payload := []byte{}
|
|
||||||
|
|
||||||
if gitLabEvent == SystemHooks {
|
if gitLabEvent == SystemHooks {
|
||||||
|
|
||||||
sysPayload, err := ioutil.ReadAll(r.Body)
|
payload, err = ioutil.ReadAll(r.Body)
|
||||||
if err != nil || len(sysPayload) == 0 {
|
if err != nil || len(payload) == 0 {
|
||||||
return nil, ErrParsingSystemPayload
|
return nil, ErrParsingSystemPayload
|
||||||
}
|
}
|
||||||
payload = sysPayload
|
|
||||||
|
|
||||||
var sysPl SystemHookPayload
|
var sysPl SystemHookPayload
|
||||||
err = json.Unmarshal([]byte(payload), &sysPl)
|
err = json.Unmarshal([]byte(payload), &sysPl)
|
||||||
@@ -135,7 +136,7 @@ func (hook Webhook) Parse(r *http.Request, events ...Event) (interface{}, error)
|
|||||||
|
|
||||||
// check if payload is empty - that means it was no system hook call
|
// check if payload is empty - that means it was no system hook call
|
||||||
if len(payload) == 0 {
|
if len(payload) == 0 {
|
||||||
payload, err := ioutil.ReadAll(r.Body)
|
payload, err = ioutil.ReadAll(r.Body)
|
||||||
if err != nil || len(payload) == 0 {
|
if err != nil || len(payload) == 0 {
|
||||||
return nil, ErrParsingPayload
|
return nil, ErrParsingPayload
|
||||||
}
|
}
|
||||||
@@ -152,47 +153,47 @@ func (hook Webhook) Parse(r *http.Request, events ...Event) (interface{}, error)
|
|||||||
switch gitLabEvent {
|
switch gitLabEvent {
|
||||||
case PushEvents:
|
case PushEvents:
|
||||||
var pl PushEventPayload
|
var pl PushEventPayload
|
||||||
err := json.Unmarshal([]byte(payload), &pl)
|
err = json.Unmarshal([]byte(payload), &pl)
|
||||||
return pl, err
|
return pl, err
|
||||||
|
|
||||||
case TagEvents:
|
case TagEvents:
|
||||||
var pl TagEventPayload
|
var pl TagEventPayload
|
||||||
err := json.Unmarshal([]byte(payload), &pl)
|
err = json.Unmarshal([]byte(payload), &pl)
|
||||||
return pl, err
|
return pl, err
|
||||||
|
|
||||||
case ConfidentialIssuesEvents:
|
case ConfidentialIssuesEvents:
|
||||||
var pl ConfidentialIssueEventPayload
|
var pl ConfidentialIssueEventPayload
|
||||||
err := json.Unmarshal([]byte(payload), &pl)
|
err = json.Unmarshal([]byte(payload), &pl)
|
||||||
return pl, err
|
return pl, err
|
||||||
|
|
||||||
case IssuesEvents:
|
case IssuesEvents:
|
||||||
var pl IssueEventPayload
|
var pl IssueEventPayload
|
||||||
err := json.Unmarshal([]byte(payload), &pl)
|
err = json.Unmarshal([]byte(payload), &pl)
|
||||||
return pl, err
|
return pl, err
|
||||||
|
|
||||||
case CommentEvents:
|
case CommentEvents:
|
||||||
var pl CommentEventPayload
|
var pl CommentEventPayload
|
||||||
err := json.Unmarshal([]byte(payload), &pl)
|
err = json.Unmarshal([]byte(payload), &pl)
|
||||||
return pl, err
|
return pl, err
|
||||||
|
|
||||||
case MergeRequestEvents:
|
case MergeRequestEvents:
|
||||||
var pl MergeRequestEventPayload
|
var pl MergeRequestEventPayload
|
||||||
err := json.Unmarshal([]byte(payload), &pl)
|
err = json.Unmarshal([]byte(payload), &pl)
|
||||||
return pl, err
|
return pl, err
|
||||||
|
|
||||||
case WikiPageEvents:
|
case WikiPageEvents:
|
||||||
var pl WikiPageEventPayload
|
var pl WikiPageEventPayload
|
||||||
err := json.Unmarshal([]byte(payload), &pl)
|
err = json.Unmarshal([]byte(payload), &pl)
|
||||||
return pl, err
|
return pl, err
|
||||||
|
|
||||||
case PipelineEvents:
|
case PipelineEvents:
|
||||||
var pl PipelineEventPayload
|
var pl PipelineEventPayload
|
||||||
err := json.Unmarshal([]byte(payload), &pl)
|
err = json.Unmarshal([]byte(payload), &pl)
|
||||||
return pl, err
|
return pl, err
|
||||||
|
|
||||||
case BuildEvents:
|
case BuildEvents:
|
||||||
var pl BuildEventPayload
|
var pl BuildEventPayload
|
||||||
err := json.Unmarshal([]byte(payload), &pl)
|
err = json.Unmarshal([]byte(payload), &pl)
|
||||||
return pl, err
|
return pl, err
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unknown event %s", gitLabEvent)
|
return nil, fmt.Errorf("unknown event %s", gitLabEvent)
|
||||||
|
|||||||
Reference in New Issue
Block a user