@@ -849,28 +849,29 @@ public function languages(int|string $project_id): mixed
849849 * @param array $parameters {
850850 *
851851 * @var bool $archived Limit by archived status
852- * @var string $visibility Limit by visibility public, internal, or private
853- * @var string $order_by Return projects ordered by id, name, path, created_at, updated_at,
854- * last_activity_at, repository_size, storage_size, packages_size or
855- * wiki_size fields (default is created_at)
856- * @var string $sort Return projects sorted in asc or desc order (default is desc)
857- * @var string $search Return list of projects matching the search criteria
858- * @var bool $simple Return only the ID, URL, name, and path of each project
859- * @var bool $owned Limit by projects owned by the current user
860852 * @var bool $membership Limit by projects that the current user is a member of
853+ * @var int $min_access_level Limit by current user minimal access level
854+ * @var string $order_by Return projects ordered by id, name, path, created_at, updated_at, star_count, or last_activity_at
855+ * @var bool $owned Limit by projects owned by the current user
856+ * @var string $search Return list of projects matching the search criteria
857+ * @var bool $simple Return only limited fields for each project
858+ * @var string $sort Return projects sorted in asc or desc order
861859 * @var bool $starred Limit by projects starred by the current user
862860 * @var bool $statistics Include project statistics
861+ * @var \DateTimeInterface $updated_after Limit results to projects last updated after the specified time
862+ * @var \DateTimeInterface $updated_before Limit results to projects last updated before the specified time
863+ * @var string $visibility Limit by visibility public, internal, or private
864+ * @var bool $with_custom_attributes Include custom attributes in response
863865 * @var bool $with_issues_enabled Limit by enabled issues feature
864866 * @var bool $with_merge_requests_enabled Limit by enabled merge requests feature
865- * @var int $min_access_level Limit by current user minimal access level
866- * @var \DateTimeInterface $updated_before limit results to projects last updated before the specified time
867- * @var \DateTimeInterface $updated_after limit results to projects last updated after the specified time
868- * @var bool $with_custom_attributes Include custom attributes in response
869867 * }
868+ *
869+ * @throws UndefinedOptionsException If an option name is undefined
870+ * @throws InvalidOptionsException If an option doesn't fulfill the specified validation rules
870871 */
871872 public function forks (int |string $ project_id , array $ parameters = []): mixed
872873 {
873- $ resolver = $ this -> createOptionsResolver ();
874+ $ resolver = new OptionsResolver ();
874875 $ booleanNormalizer = function (Options $ resolver , $ value ): string {
875876 return $ value ? 'true ' : 'false ' ;
876877 };
@@ -881,31 +882,30 @@ public function forks(int|string $project_id, array $parameters = []): mixed
881882 ->setAllowedTypes ('archived ' , 'bool ' )
882883 ->setNormalizer ('archived ' , $ booleanNormalizer )
883884 ;
884- $ resolver ->setDefined ('visibility ' )
885- ->setAllowedValues ('visibility ' , ['public ' , 'internal ' , 'private ' ])
885+ $ resolver ->setDefined ('membership ' )
886+ ->setAllowedTypes ('membership ' , 'bool ' )
887+ ->setNormalizer ('membership ' , $ booleanNormalizer )
886888 ;
887- $ orderBy = [
888- ' id ' , ' name ' , ' path ' , ' created_at ' , ' updated_at ' , ' last_activity_at ' ,
889- ' repository_size ' , ' storage_size ' , ' packages_size ' , ' wiki_size ' ,
890- ];
889+ $ resolver -> setDefined ( ' min_access_level ' )
890+ -> setAllowedValues ( ' min_access_level ' , [ null , 5 , 10 , 15 , 20 , 25 , 30 , 40 , 50 ])
891+ ;
892+ $ orderBy = [ ' id ' , ' name ' , ' path ' , ' created_at ' , ' updated_at ' , ' star_count ' , ' last_activity_at ' ];
891893 $ resolver ->setDefined ('order_by ' )
892894 ->setAllowedValues ('order_by ' , $ orderBy )
893895 ;
894- $ resolver ->setDefined ('sort ' )
895- ->setAllowedValues ('sort ' , ['asc ' , 'desc ' ])
896+ $ resolver ->setDefined ('owned ' )
897+ ->setAllowedTypes ('owned ' , 'bool ' )
898+ ->setNormalizer ('owned ' , $ booleanNormalizer )
899+ ;
900+ $ resolver ->setDefined ('search ' )
901+ ->setAllowedTypes ('search ' , 'string ' )
896902 ;
897- $ resolver ->setDefined ('search ' );
898903 $ resolver ->setDefined ('simple ' )
899904 ->setAllowedTypes ('simple ' , 'bool ' )
900905 ->setNormalizer ('simple ' , $ booleanNormalizer )
901906 ;
902- $ resolver ->setDefined ('owned ' )
903- ->setAllowedTypes ('owned ' , 'bool ' )
904- ->setNormalizer ('owned ' , $ booleanNormalizer )
905- ;
906- $ resolver ->setDefined ('membership ' )
907- ->setAllowedTypes ('membership ' , 'bool ' )
908- ->setNormalizer ('membership ' , $ booleanNormalizer )
907+ $ resolver ->setDefined ('sort ' )
908+ ->setAllowedValues ('sort ' , ['asc ' , 'desc ' ])
909909 ;
910910 $ resolver ->setDefined ('starred ' )
911911 ->setAllowedTypes ('starred ' , 'bool ' )
@@ -915,29 +915,29 @@ public function forks(int|string $project_id, array $parameters = []): mixed
915915 ->setAllowedTypes ('statistics ' , 'bool ' )
916916 ->setNormalizer ('statistics ' , $ booleanNormalizer )
917917 ;
918- $ resolver ->setDefined ('with_issues_enabled ' )
919- ->setAllowedTypes ('with_issues_enabled ' , 'bool ' )
920- ->setNormalizer ('with_issues_enabled ' , $ booleanNormalizer )
921- ;
922- $ resolver ->setDefined ('with_merge_requests_enabled ' )
923- ->setAllowedTypes ('with_merge_requests_enabled ' , 'bool ' )
924- ->setNormalizer ('with_merge_requests_enabled ' , $ booleanNormalizer )
925- ;
926- $ resolver ->setDefined ('min_access_level ' )
927- ->setAllowedValues ('min_access_level ' , [null , 10 , 20 , 30 , 40 , 50 ])
918+ $ resolver ->setDefined ('updated_after ' )
919+ ->setAllowedTypes ('updated_after ' , \DateTimeInterface::class)
920+ ->setNormalizer ('updated_after ' , $ datetimeNormalizer )
928921 ;
929922 $ resolver ->setDefined ('updated_before ' )
930923 ->setAllowedTypes ('updated_before ' , \DateTimeInterface::class)
931924 ->setNormalizer ('updated_before ' , $ datetimeNormalizer )
932925 ;
933- $ resolver ->setDefined ('updated_after ' )
934- ->setAllowedTypes ('updated_after ' , \DateTimeInterface::class)
935- ->setNormalizer ('updated_after ' , $ datetimeNormalizer )
926+ $ resolver ->setDefined ('visibility ' )
927+ ->setAllowedValues ('visibility ' , ['public ' , 'internal ' , 'private ' ])
936928 ;
937929 $ resolver ->setDefined ('with_custom_attributes ' )
938930 ->setAllowedTypes ('with_custom_attributes ' , 'bool ' )
939931 ->setNormalizer ('with_custom_attributes ' , $ booleanNormalizer )
940932 ;
933+ $ resolver ->setDefined ('with_issues_enabled ' )
934+ ->setAllowedTypes ('with_issues_enabled ' , 'bool ' )
935+ ->setNormalizer ('with_issues_enabled ' , $ booleanNormalizer )
936+ ;
937+ $ resolver ->setDefined ('with_merge_requests_enabled ' )
938+ ->setAllowedTypes ('with_merge_requests_enabled ' , 'bool ' )
939+ ->setNormalizer ('with_merge_requests_enabled ' , $ booleanNormalizer )
940+ ;
941941
942942 return $ this ->get ($ this ->getProjectPath ($ project_id , 'forks ' ), $ resolver ->resolve ($ parameters ));
943943 }
0 commit comments