@@ -25,22 +25,41 @@ var (
25
25
26
26
// GitLab hook types
27
27
const (
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"
44
63
)
45
64
46
65
// Option is a configuration option for the webhook
@@ -177,6 +196,7 @@ func eventParsing(gitLabEvent Event, events []Event, payload []byte) (interface{
177
196
var pl BuildEventPayload
178
197
err := json .Unmarshal ([]byte (payload ), & pl )
179
198
return pl , err
199
+
180
200
case JobEvents :
181
201
var pl JobEventPayload
182
202
err := json .Unmarshal ([]byte (payload ), & pl )
@@ -194,21 +214,127 @@ func eventParsing(gitLabEvent Event, events []Event, payload []byte) (interface{
194
214
if err != nil {
195
215
return nil , err
196
216
}
217
+
197
218
switch pl .ObjectKind {
198
219
case objectPush :
199
220
return eventParsing (PushEvents , events , payload )
221
+
200
222
case objectTag :
201
223
return eventParsing (TagEvents , events , payload )
224
+
202
225
case objectMergeRequest :
203
226
return eventParsing (MergeRequestEvents , events , payload )
204
227
default :
205
228
switch pl .EventName {
206
229
case objectPush :
207
230
return eventParsing (PushEvents , events , payload )
231
+
208
232
case objectTag :
209
233
return eventParsing (TagEvents , events , payload )
234
+
210
235
case objectMergeRequest :
211
236
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
+
212
338
default :
213
339
return nil , fmt .Errorf ("unknown system hook event %s" , gitLabEvent )
214
340
}
0 commit comments