@@ -25,22 +25,41 @@ var (
2525
2626// GitLab hook types
2727const (
28- PushEvents Event = "Push Hook"
29- TagEvents Event = "Tag Push Hook"
30- IssuesEvents Event = "Issue Hook"
31- ConfidentialIssuesEvents Event = "Confidential Issue Hook"
32- CommentEvents Event = "Note Hook"
33- MergeRequestEvents Event = "Merge Request Hook"
34- WikiPageEvents Event = "Wiki Page Hook"
35- PipelineEvents Event = "Pipeline Hook"
36- BuildEvents Event = "Build Hook"
37- JobEvents Event = "Job Hook"
38- SystemHookEvents Event = "System Hook"
39-
40- objectPush string = "push"
41- objectTag string = "tag_push"
42- objectMergeRequest string = "merge_request"
43- objectBuild string = "build"
28+ PushEvents Event = "Push Hook"
29+ TagEvents Event = "Tag Push Hook"
30+ IssuesEvents Event = "Issue Hook"
31+ ConfidentialIssuesEvents Event = "Confidential Issue Hook"
32+ CommentEvents Event = "Note Hook"
33+ MergeRequestEvents Event = "Merge Request Hook"
34+ WikiPageEvents Event = "Wiki Page Hook"
35+ PipelineEvents Event = "Pipeline Hook"
36+ BuildEvents Event = "Build Hook"
37+ JobEvents Event = "Job Hook"
38+ SystemHookEvents Event = "System Hook"
39+ objectPush string = "push"
40+ objectTag string = "tag_push"
41+ objectMergeRequest string = "merge_request"
42+ objectBuild string = "build"
43+ eventProjectCreate string = "project_create"
44+ eventProjectDestroy string = "project_destroy"
45+ eventProjectRename string = "project_rename"
46+ eventProjectTransfer string = "project_transfer"
47+ eventProjectUpdate string = "project_update"
48+ eventUserAddToTeam string = "user_add_to_team"
49+ eventUserRemoveFromTeam string = "user_remove_from_team"
50+ eventUserUpdateForTeam string = "user_update_for_team"
51+ eventUserCreate string = "user_create"
52+ eventUserDestroy string = "user_destroy"
53+ eventUserFailedLogin string = "user_failed_login"
54+ eventUserRename string = "user_rename"
55+ eventKeyCreate string = "key_create"
56+ eventKeyDestroy string = "key_destroy"
57+ eventGroupCreate string = "group_create"
58+ eventGroupDestroy string = "group_destroy"
59+ eventGroupRename string = "group_rename"
60+ eventUserAddToGroup string = "user_add_to_group"
61+ eventUserRemoveFromGroup string = "user_remove_from_group"
62+ eventUserUpdateForGroup string = "user_update_for_group"
4463)
4564
4665// Option is a configuration option for the webhook
@@ -177,6 +196,7 @@ func eventParsing(gitLabEvent Event, events []Event, payload []byte) (interface{
177196 var pl BuildEventPayload
178197 err := json .Unmarshal ([]byte (payload ), & pl )
179198 return pl , err
199+
180200 case JobEvents :
181201 var pl JobEventPayload
182202 err := json .Unmarshal ([]byte (payload ), & pl )
@@ -194,21 +214,127 @@ func eventParsing(gitLabEvent Event, events []Event, payload []byte) (interface{
194214 if err != nil {
195215 return nil , err
196216 }
217+
197218 switch pl .ObjectKind {
198219 case objectPush :
199220 return eventParsing (PushEvents , events , payload )
221+
200222 case objectTag :
201223 return eventParsing (TagEvents , events , payload )
224+
202225 case objectMergeRequest :
203226 return eventParsing (MergeRequestEvents , events , payload )
204227 default :
205228 switch pl .EventName {
206229 case objectPush :
207230 return eventParsing (PushEvents , events , payload )
231+
208232 case objectTag :
209233 return eventParsing (TagEvents , events , payload )
234+
210235 case objectMergeRequest :
211236 return eventParsing (MergeRequestEvents , events , payload )
237+
238+ case eventProjectCreate :
239+ var pl ProjectCreatedEventPayload
240+ err := json .Unmarshal ([]byte (payload ), & pl )
241+ return pl , err
242+
243+ case eventProjectDestroy :
244+ var pl ProjectDestroyedEventPayload
245+ err := json .Unmarshal ([]byte (payload ), & pl )
246+ return pl , err
247+
248+ case eventProjectRename :
249+ var pl ProjectRenamedEventPayload
250+ err := json .Unmarshal ([]byte (payload ), & pl )
251+ return pl , err
252+
253+ case eventProjectTransfer :
254+ var pl ProjectTransferredEventPayload
255+ err := json .Unmarshal ([]byte (payload ), & pl )
256+ return pl , err
257+
258+ case eventProjectUpdate :
259+ var pl ProjectUpdatedEventPayload
260+ err := json .Unmarshal ([]byte (payload ), & pl )
261+ return pl , err
262+
263+ case eventUserAddToTeam :
264+ var pl TeamMemberAddedEventPayload
265+ err := json .Unmarshal ([]byte (payload ), & pl )
266+ return pl , err
267+
268+ case eventUserRemoveFromTeam :
269+ var pl TeamMemberRemovedEventPayload
270+ err := json .Unmarshal ([]byte (payload ), & pl )
271+ return pl , err
272+
273+ case eventUserUpdateForTeam :
274+ var pl TeamMemberUpdatedEventPayload
275+ err := json .Unmarshal ([]byte (payload ), & pl )
276+ return pl , err
277+
278+ case eventUserCreate :
279+ var pl UserCreatedEventPayload
280+ err := json .Unmarshal ([]byte (payload ), & pl )
281+ return pl , err
282+
283+ case eventUserDestroy :
284+ var pl UserRemovedEventPayload
285+ err := json .Unmarshal ([]byte (payload ), & pl )
286+ return pl , err
287+
288+ case eventUserFailedLogin :
289+ var pl UserFailedLoginEventPayload
290+ err := json .Unmarshal ([]byte (payload ), & pl )
291+ return pl , err
292+
293+ case eventUserRename :
294+ var pl UserRenamedEventPayload
295+ err := json .Unmarshal ([]byte (payload ), & pl )
296+ return pl , err
297+
298+ case eventKeyCreate :
299+ var pl KeyAddedEventPayload
300+ err := json .Unmarshal ([]byte (payload ), & pl )
301+ return pl , err
302+
303+ case eventKeyDestroy :
304+ var pl KeyRemovedEventPayload
305+ err := json .Unmarshal ([]byte (payload ), & pl )
306+ return pl , err
307+
308+ case eventGroupCreate :
309+ var pl GroupCreatedEventPayload
310+ err := json .Unmarshal ([]byte (payload ), & pl )
311+ return pl , err
312+
313+ case eventGroupDestroy :
314+ var pl GroupRemovedEventPayload
315+ err := json .Unmarshal ([]byte (payload ), & pl )
316+ return pl , err
317+
318+ case eventGroupRename :
319+ var pl GroupRenamedEventPayload
320+ err := json .Unmarshal ([]byte (payload ), & pl )
321+ return pl , err
322+
323+ case eventUserAddToGroup :
324+ var pl GroupMemberAddedEventPayload
325+ err := json .Unmarshal ([]byte (payload ), & pl )
326+ return pl , err
327+
328+ case eventUserRemoveFromGroup :
329+ var pl GroupMemberRemovedEventPayload
330+ err := json .Unmarshal ([]byte (payload ), & pl )
331+ return pl , err
332+
333+ case eventUserUpdateForGroup :
334+ var pl GroupMemberUpdatedEventPayload
335+ err := json .Unmarshal ([]byte (payload ), & pl )
336+ return pl , err
337+
212338 default :
213339 return nil , fmt .Errorf ("unknown system hook event %s" , gitLabEvent )
214340 }
0 commit comments