@@ -24,22 +24,31 @@ class Projects extends AbstractApi
2424 /**
2525 * @param array $parameters {
2626 *
27- * @var bool $archived limit by archived status
28- * @var string $visibility limit by visibility public, internal, or private
29- * @var string $order_by Return projects ordered by id, name, path, created_at, updated_at,
30- * last_activity_at, repository_size, storage_size, packages_size or
31- * wiki_size fields (default is created_at)
32- * @var string $sort Return projects sorted in asc or desc order (default is desc)
33- * @var string $search return list of projects matching the search criteria
34- * @var bool $search_namespaces Include ancestor namespaces when matching search criteria
35- * @var bool $simple return only the ID, URL, name, and path of each project
36- * @var bool $owned limit by projects owned by the current user
37- * @var bool $membership limit by projects that the current user is a member of
38- * @var bool $starred limit by projects starred by the current user
39- * @var bool $statistics include project statistics
40- * @var bool $with_issues_enabled limit by enabled issues feature
41- * @var bool $with_merge_requests_enabled limit by enabled merge requests feature
42- * @var int $min_access_level Limit by current user minimal access level
27+ * @var bool $archived limit by archived status
28+ * @var string $visibility limit by visibility public, internal, or private
29+ * @var string $order_by Return projects ordered by id, name, path, created_at, updated_at,
30+ * last_activity_at, repository_size, storage_size, packages_size or
31+ * wiki_size fields (default is created_at)
32+ * @var string $sort Return projects sorted in asc or desc order (default is desc)
33+ * @var string $search return list of projects matching the search criteria
34+ * @var bool $search_namespaces Include ancestor namespaces when matching search criteria
35+ * @var bool $simple return only the ID, URL, name, and path of each project
36+ * @var bool $owned limit by projects owned by the current user
37+ * @var bool $membership limit by projects that the current user is a member of
38+ * @var bool $starred limit by projects starred by the current user
39+ * @var bool $statistics include project statistics
40+ * @var bool $with_issues_enabled limit by enabled issues feature
41+ * @var bool $with_merge_requests_enabled limit by enabled merge requests feature
42+ * @var int $min_access_level Limit by current user minimal access level
43+ * @var int $id_after Limit by project id's greater than the specified id
44+ * @var int $id_before Limit by project id's less than the specified id
45+ * @var \DateTimeInterface $last_activity_after Limit by last_activity after specified time
46+ * @var \DateTimeInterface $last_activity_before Limit by last_activity before specified time
47+ * @var bool $repository_checksum_failed Limit by failed repository checksum calculation
48+ * @var string $repository_storage Limit by repository storage type
49+ * @var bool $wiki_checksum_failed Limit by failed wiki checksum calculation
50+ * @var bool $with_custom_attributes Include custom attributes in response
51+ * @var string $with_programming_language Limit by programming language
4352 * }
4453 *
4554 * @throws UndefinedOptionsException If an option name is undefined
@@ -54,6 +63,9 @@ public function all(array $parameters = [])
5463 $ booleanNormalizer = function (Options $ resolver , $ value ): string {
5564 return $ value ? 'true ' : 'false ' ;
5665 };
66+ $ datetimeNormalizer = function (Options $ resolver , \DateTimeInterface $ value ): string {
67+ return $ value ->format ('c ' );
68+ };
5769 $ resolver ->setDefined ('archived ' )
5870 ->setAllowedTypes ('archived ' , 'bool ' )
5971 ->setNormalizer ('archived ' , $ booleanNormalizer )
@@ -107,6 +119,34 @@ public function all(array $parameters = [])
107119 $ resolver ->setDefined ('min_access_level ' )
108120 ->setAllowedValues ('min_access_level ' , [null , 10 , 20 , 30 , 40 , 50 ])
109121 ;
122+ $ resolver ->setDefined ('id_after ' )
123+ ->setAllowedTypes ('id_after ' , 'integer ' )
124+ ;
125+ $ resolver ->setDefined ('id_before ' )
126+ ->setAllowedTypes ('id_before ' , 'integer ' )
127+ ;
128+ $ resolver ->setDefined ('last_activity_after ' )
129+ ->setAllowedTypes ('last_activity_after ' , \DateTimeInterface::class)
130+ ->setNormalizer ('last_activity_after ' , $ datetimeNormalizer )
131+ ;
132+ $ resolver ->setDefined ('last_activity_before ' )
133+ ->setAllowedTypes ('last_activity_before ' , \DateTimeInterface::class)
134+ ->setNormalizer ('last_activity_before ' , $ datetimeNormalizer )
135+ ;
136+ $ resolver ->setDefined ('repository_checksum_failed ' )
137+ ->setAllowedTypes ('repository_checksum_failed ' , 'bool ' )
138+ ->setNormalizer ('repository_checksum_failed ' , $ booleanNormalizer )
139+ ;
140+ $ resolver ->setDefined ('repository_storage ' );
141+ $ resolver ->setDefined ('wiki_checksum_failed ' )
142+ ->setAllowedTypes ('wiki_checksum_failed ' , 'bool ' )
143+ ->setNormalizer ('wiki_checksum_failed ' , $ booleanNormalizer )
144+ ;
145+ $ resolver ->setDefined ('with_custom_attributes ' )
146+ ->setAllowedTypes ('with_custom_attributes ' , 'bool ' )
147+ ->setNormalizer ('with_custom_attributes ' , $ booleanNormalizer )
148+ ;
149+ $ resolver ->setDefined ('with_programming_language ' );
110150
111151 return $ this ->get ('projects ' , $ resolver ->resolve ($ parameters ));
112152 }
0 commit comments