@@ -413,16 +413,42 @@ public function enableDeployKey($project_id, $key_id)
413
413
414
414
/**
415
415
* @param int $project_id
416
- * @param int $page
417
- * @param int $per_page
416
+ * @param array $parameters (
417
+ *
418
+ * @var string $action Include only events of a particular action type.
419
+ * @var string $target_type Include only events of a particular target type.
420
+ * @var \DateTimeInterface $before Include only events created before a particular date.
421
+ * @var \DateTimeInterface $after Include only events created after a particular date.
422
+ * @var string $sort Sort events in asc or desc order by created_at. Default is desc.
423
+ * )
424
+ *
418
425
* @return mixed
419
426
*/
420
- public function events ($ project_id , $ page = 1 , $ per_page = self :: PER_PAGE )
427
+ public function events ($ project_id , array $ parameters = [] )
421
428
{
422
- return $ this ->get ($ this ->getProjectPath ($ project_id , 'events ' ), array (
423
- 'page ' => $ page ,
424
- 'per_page ' => $ per_page
425
- ));
429
+ $ resolver = $ this ->createOptionsResolver ();
430
+ $ datetimeNormalizer = function (\DateTimeInterface $ value ) {
431
+ return $ value ->format ('Y-m-d ' );
432
+ };
433
+
434
+ $ resolver ->setDefined ('action ' )
435
+ ->setAllowedValues ('action ' , ['created ' , 'updated ' , 'closed ' , 'reopened ' , 'pushed ' , 'commented ' , 'merged ' , 'joined ' , 'left ' , 'destroyed ' , 'expired ' ])
436
+ ;
437
+ $ resolver ->setDefined ('target_type ' )
438
+ ->setAllowedValues ('target_type ' , ['issue ' , 'milestone ' , 'merge_request ' , 'note ' , 'project ' , 'snippet ' , 'user ' ])
439
+ ;
440
+ $ resolver ->setDefined ('before ' )
441
+ ->setAllowedTypes ('before ' , \DateTimeInterface::class)
442
+ ->setNormalizer ('before ' , $ datetimeNormalizer );
443
+ $ resolver ->setDefined ('after ' )
444
+ ->setAllowedTypes ('after ' , \DateTimeInterface::class)
445
+ ->setNormalizer ('after ' , $ datetimeNormalizer )
446
+ ;
447
+ $ resolver ->setDefined ('sort ' )
448
+ ->setAllowedValues ('sort ' , ['asc ' , 'desc ' ])
449
+ ;
450
+
451
+ return $ this ->get ($ this ->getProjectPath ($ project_id , 'events ' ), $ resolver ->resolve ($ parameters ));
426
452
}
427
453
428
454
/**
0 commit comments