@@ -413,16 +413,42 @@ public function enableDeployKey($project_id, $key_id)
413413
414414 /**
415415 * @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+ *
418425 * @return mixed
419426 */
420- public function events ($ project_id , $ page = 1 , $ per_page = self :: PER_PAGE )
427+ public function events ($ project_id , array $ parameters = [] )
421428 {
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 ));
426452 }
427453
428454 /**
0 commit comments