@@ -1035,13 +1035,100 @@ public function languages($project_id)
1035
1035
1036
1036
/**
1037
1037
* @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
+ * }
1039
1059
*
1040
1060
* @return mixed
1041
1061
*/
1042
1062
public function forks ($ project_id , array $ parameters = [])
1043
1063
{
1044
1064
$ 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
+ ;
1045
1132
1046
1133
return $ this ->get ($ this ->getProjectPath ($ project_id , 'forks ' ), $ resolver ->resolve ($ parameters ));
1047
1134
}
0 commit comments