@@ -174,6 +174,88 @@ public function usersProjects(int $id, array $parameters = [])
174174 return $ this ->get ('users/ ' .self ::encodePath ($ id ).'/projects ' , $ resolver ->resolve ($ parameters ));
175175 }
176176
177+ /**
178+ * @param int $id
179+ * @param array $parameters {
180+ *
181+ * @var bool $archived limit by archived status
182+ * @var string $visibility limit by visibility public, internal, or private
183+ * @var string $order_by Return projects ordered by id, name, path, created_at, updated_at,
184+ * or last_activity_at fields (default is created_at)
185+ * @var string $sort Return projects sorted in asc or desc order (default is desc)
186+ * @var string $search return list of projects matching the search criteria
187+ * @var bool $simple return only the ID, URL, name, and path of each project
188+ * @var bool $owned limit by projects owned by the current user
189+ * @var bool $membership limit by projects that the current user is a member of
190+ * @var bool $starred limit by projects starred by the current user
191+ * @var bool $statistics include project statistics
192+ * @var bool $with_issues_enabled limit by enabled issues feature
193+ * @var bool $with_merge_requests_enabled limit by enabled merge requests feature
194+ * @var int $min_access_level Limit by current user minimal access level
195+ * @var bool $with_custom_attributes Include custom attributes in response (administrator only)
196+ * }
197+ *
198+ * @return mixed
199+ */
200+ public function usersStarredProjects (int $ id , array $ parameters = [])
201+ {
202+ $ resolver = $ this ->createOptionsResolver ();
203+ $ booleanNormalizer = function (Options $ resolver , $ value ): string {
204+ return $ value ? 'true ' : 'false ' ;
205+ };
206+ $ resolver ->setDefined ('archived ' )
207+ ->setAllowedTypes ('archived ' , 'bool ' )
208+ ->setNormalizer ('archived ' , $ booleanNormalizer )
209+ ;
210+ $ resolver ->setDefined ('visibility ' )
211+ ->setAllowedValues ('visibility ' , ['public ' , 'internal ' , 'private ' ])
212+ ;
213+ $ resolver ->setDefined ('order_by ' )
214+ ->setAllowedValues ('order_by ' , ['id ' , 'name ' , 'path ' , 'created_at ' , 'updated_at ' , 'last_activity_at ' ])
215+ ;
216+ $ resolver ->setDefined ('sort ' )
217+ ->setAllowedValues ('sort ' , ['asc ' , 'desc ' ])
218+ ;
219+ $ resolver ->setDefined ('search ' );
220+ $ resolver ->setDefined ('simple ' )
221+ ->setAllowedTypes ('simple ' , 'bool ' )
222+ ->setNormalizer ('simple ' , $ booleanNormalizer )
223+ ;
224+ $ resolver ->setDefined ('owned ' )
225+ ->setAllowedTypes ('owned ' , 'bool ' )
226+ ->setNormalizer ('owned ' , $ booleanNormalizer )
227+ ;
228+ $ resolver ->setDefined ('membership ' )
229+ ->setAllowedTypes ('membership ' , 'bool ' )
230+ ->setNormalizer ('membership ' , $ booleanNormalizer )
231+ ;
232+ $ resolver ->setDefined ('starred ' )
233+ ->setAllowedTypes ('starred ' , 'bool ' )
234+ ->setNormalizer ('starred ' , $ booleanNormalizer )
235+ ;
236+ $ resolver ->setDefined ('statistics ' )
237+ ->setAllowedTypes ('statistics ' , 'bool ' )
238+ ->setNormalizer ('statistics ' , $ booleanNormalizer )
239+ ;
240+ $ resolver ->setDefined ('with_issues_enabled ' )
241+ ->setAllowedTypes ('with_issues_enabled ' , 'bool ' )
242+ ->setNormalizer ('with_issues_enabled ' , $ booleanNormalizer )
243+ ;
244+ $ resolver ->setDefined ('with_merge_requests_enabled ' )
245+ ->setAllowedTypes ('with_merge_requests_enabled ' , 'bool ' )
246+ ->setNormalizer ('with_merge_requests_enabled ' , $ booleanNormalizer )
247+ ;
248+ $ resolver ->setDefined ('min_access_level ' )
249+ ->setAllowedValues ('min_access_level ' , [null , 10 , 20 , 30 , 40 , 50 ])
250+ ;
251+ $ resolver ->setDefined ('with_custom_attributes ' )
252+ ->setAllowedTypes ('with_custom_attributes ' , 'bool ' )
253+ ->setNormalizer ('with_custom_attributes ' , $ booleanNormalizer )
254+ ;
255+
256+ return $ this ->get ('users/ ' .self ::encodePath ($ id ).'/starred_projects ' , $ resolver ->resolve ($ parameters ));
257+ }
258+
177259 /**
178260 * @return mixed
179261 */
0 commit comments