@@ -1035,13 +1035,100 @@ public function languages($project_id)
10351035
10361036 /**
10371037 * @param int|string $project_id
1038- * @param array $parameters
1038+ * @param array $parameters {
1039+ *
1040+ * @var bool $archived Limit by archived status
1041+ * @var string $visibility Limit by visibility public, internal, or private
1042+ * @var string $order_by Return projects ordered by id, name, path, created_at, updated_at,
1043+ * last_activity_at, repository_size, storage_size, packages_size or
1044+ * wiki_size fields (default is created_at)
1045+ * @var string $sort Return projects sorted in asc or desc order (default is desc)
1046+ * @var string $search Return list of projects matching the search criteria
1047+ * @var bool $simple Return only the ID, URL, name, and path of each project
1048+ * @var bool $owned Limit by projects owned by the current user
1049+ * @var bool $membership Limit by projects that the current user is a member of
1050+ * @var bool $starred Limit by projects starred by the current user
1051+ * @var bool $statistics Include project statistics
1052+ * @var bool $with_issues_enabled Limit by enabled issues feature
1053+ * @var bool $with_merge_requests_enabled Limit by enabled merge requests feature
1054+ * @var int $min_access_level Limit by current user minimal access level
1055+ * @var \DateTimeInterface $updated_before limit results to projects last updated before the specified time
1056+ * @var \DateTimeInterface $updated_after limit results to projects last updated after the specified time
1057+ * @var bool $with_custom_attributes Include custom attributes in response
1058+ * }
10391059 *
10401060 * @return mixed
10411061 */
10421062 public function forks ($ project_id , array $ parameters = [])
10431063 {
10441064 $ resolver = $ this ->createOptionsResolver ();
1065+ $ booleanNormalizer = function (Options $ resolver , $ value ): string {
1066+ return $ value ? 'true ' : 'false ' ;
1067+ };
1068+ $ datetimeNormalizer = function (Options $ resolver , \DateTimeInterface $ value ): string {
1069+ return $ value ->format ('c ' );
1070+ };
1071+ $ resolver ->setDefined ('archived ' )
1072+ ->setAllowedTypes ('archived ' , 'bool ' )
1073+ ->setNormalizer ('archived ' , $ booleanNormalizer )
1074+ ;
1075+ $ resolver ->setDefined ('visibility ' )
1076+ ->setAllowedValues ('visibility ' , ['public ' , 'internal ' , 'private ' ])
1077+ ;
1078+ $ orderBy = [
1079+ 'id ' , 'name ' , 'path ' , 'created_at ' , 'updated_at ' , 'last_activity_at ' ,
1080+ 'repository_size ' , 'storage_size ' , 'packages_size ' , 'wiki_size ' ,
1081+ ];
1082+ $ resolver ->setDefined ('order_by ' )
1083+ ->setAllowedValues ('order_by ' , $ orderBy )
1084+ ;
1085+ $ resolver ->setDefined ('sort ' )
1086+ ->setAllowedValues ('sort ' , ['asc ' , 'desc ' ])
1087+ ;
1088+ $ resolver ->setDefined ('search ' );
1089+ $ resolver ->setDefined ('simple ' )
1090+ ->setAllowedTypes ('simple ' , 'bool ' )
1091+ ->setNormalizer ('simple ' , $ booleanNormalizer )
1092+ ;
1093+ $ resolver ->setDefined ('owned ' )
1094+ ->setAllowedTypes ('owned ' , 'bool ' )
1095+ ->setNormalizer ('owned ' , $ booleanNormalizer )
1096+ ;
1097+ $ resolver ->setDefined ('membership ' )
1098+ ->setAllowedTypes ('membership ' , 'bool ' )
1099+ ->setNormalizer ('membership ' , $ booleanNormalizer )
1100+ ;
1101+ $ resolver ->setDefined ('starred ' )
1102+ ->setAllowedTypes ('starred ' , 'bool ' )
1103+ ->setNormalizer ('starred ' , $ booleanNormalizer )
1104+ ;
1105+ $ resolver ->setDefined ('statistics ' )
1106+ ->setAllowedTypes ('statistics ' , 'bool ' )
1107+ ->setNormalizer ('statistics ' , $ booleanNormalizer )
1108+ ;
1109+ $ resolver ->setDefined ('with_issues_enabled ' )
1110+ ->setAllowedTypes ('with_issues_enabled ' , 'bool ' )
1111+ ->setNormalizer ('with_issues_enabled ' , $ booleanNormalizer )
1112+ ;
1113+ $ resolver ->setDefined ('with_merge_requests_enabled ' )
1114+ ->setAllowedTypes ('with_merge_requests_enabled ' , 'bool ' )
1115+ ->setNormalizer ('with_merge_requests_enabled ' , $ booleanNormalizer )
1116+ ;
1117+ $ resolver ->setDefined ('min_access_level ' )
1118+ ->setAllowedValues ('min_access_level ' , [null , 10 , 20 , 30 , 40 , 50 ])
1119+ ;
1120+ $ resolver ->setDefined ('updated_before ' )
1121+ ->setAllowedTypes ('updated_before ' , \DateTimeInterface::class)
1122+ ->setNormalizer ('updated_before ' , $ datetimeNormalizer )
1123+ ;
1124+ $ resolver ->setDefined ('updated_after ' )
1125+ ->setAllowedTypes ('updated_after ' , \DateTimeInterface::class)
1126+ ->setNormalizer ('updated_after ' , $ datetimeNormalizer )
1127+ ;
1128+ $ resolver ->setDefined ('with_custom_attributes ' )
1129+ ->setAllowedTypes ('with_custom_attributes ' , 'bool ' )
1130+ ->setNormalizer ('with_custom_attributes ' , $ booleanNormalizer )
1131+ ;
10451132
10461133 return $ this ->get ($ this ->getProjectPath ($ project_id , 'forks ' ), $ resolver ->resolve ($ parameters ));
10471134 }
0 commit comments