@@ -46,26 +46,70 @@ class MergeRequests extends AbstractApi
4646 public const STATE_LOCKED = 'locked ' ;
4747
4848 /**
49- * @param array $parameters {
5049 *
51- * @var int[] $iids return the request having the given iid
52- * @var string $state return all merge requests or just those that are opened, closed, or
53- * merged
54- * @var string $scope Return merge requests for the given scope: created-by-me,
55- * assigned-to-me or all (default is created-by-me)
56- * @var string $order_by return requests ordered by created_at or updated_at fields (default is created_at)
57- * @var string $sort return requests sorted in asc or desc order (default is desc)
58- * @var string $milestone return merge requests for a specific milestone
59- * @var string $view if simple, returns the iid, URL, title, description, and basic state of merge request
60- * @var string $labels return merge requests matching a comma separated list of labels
61- * @var \DateTimeInterface $created_after return merge requests created after the given time (inclusive)
62- * @var \DateTimeInterface $created_before return merge requests created before the given time (inclusive)
63- * @var int $reviewer_id return merge requests which have the user as a reviewer with the given user id
64- * @var bool $wip return only draft merge requests (true) or only non-draft merge requests (false)
50+ * @param array $parameters {
51+ * @throws UndefinedOptionsException if an option name is undefined
52+ * @throws InvalidOptionsException if an option doesn't fulfill the specified validation rules
53+ *@var int[] $iids return the request having the given iid
54+ * @var int[] $approved_by_ids return merge requests approved by all the users with the given id.
55+ * @var int[] $approver_ids return merge requests which have specified all the users with
56+ * the given id as individual approvers.
57+ * @var int $assignee_id return merge requests assigned to the given user id.
58+ * None returns unassigned merge requests.
59+ * @var int $author_id return merge requests created by the given user id.
60+ * Mutually exclusive with author_username.
61+ * @var string $author_username return merge requests created by the given username.
62+ * Mutually exclusive with author_id.
63+ * @var \DateTimeInterface $created_after return merge requests created after the given time (inclusive)
64+ * @var \DateTimeInterface $created_before return merge requests created before the given time (inclusive)
65+ * @var \DateTimeInterface $deployed_after return merge requests deployed after the given time (inclusive)
66+ * @var \DateTimeInterface $deployed_before return merge requests deployed before the given time (inclusive)
67+ * @var string $environment return only merge requests deployed to the given environment.
68+ * @var string $in Change the scope of the search attribute. title, description, or
69+ * a string joining them with comma. Default is title,description.
70+ * @var string $labels return merge requests matching a comma separated list of labels
71+ * @var int $merge_user_id return merge requests merged by the given user id.
72+ * Mutually exclusive with merge_username.
73+ * @var string $merge_user_username return merge requests merged by the given username.
74+ * Mutually exclusive with merge_user_id.
75+ * @var string $milestone return merge requests for a specific milestone
76+ * @var string $my_reaction_emoji return merge requests reacted by the authenticated user
77+ * by the given emoji.
78+ * @var string[] $not return merge requests that do not match the parameters supplied.
79+ * Accepts: labels, milestone, author_id, author_username, assignee_id,
80+ * assignee_username, reviewer_id, reviewer_username,
81+ * my_reaction_emoji.
82+ * @var string $order_by return requests ordered by created_at or updated_at fields
83+ * (default is created_at)
84+ * @var bool $render_html if true, the response includes rendered HTML fields title_html
85+ * and description_html.
86+ * @var int $reviewer_id return merge requests which have the user as a reviewer with the
87+ * given user id. Mutually exclusive with reviewer_username.
88+ * @var string $reviewer_username return merge requests which have the user as a reviewer with
89+ * the given username. Mutually exclusive with reviewer_id.
90+ * @var string $scope Return merge requests for the given scope: created-by-me,
91+ * assigned-to-me, reviews_for_me or all (default is created-by-me)
92+ * reviews_for_me returns merge requests where the current user is
93+ * assigned as a reviewer.
94+ * @var string $search Search merge requests against their title and description.
95+ * @var string $sort return requests sorted in asc or desc order (default is desc)
96+ * @var string $source_branch return merge requests with the given source branch.
97+ * @var string $state return all merge requests or just those that are opened, closed, or
98+ * merged
99+ * @var string $target_branch Returns merge requests with the given target branch.
100+ * @var \DateTimeInterface $updated_after Returns merge requests updated on or after the given time.
101+ * @var \DateTimeInterface $updated_before Returns merge requests updated on or before the given time.
102+ * @var string $view if simple, returns the iid, URL, title, description, and basic
103+ * @var bool $with_labels_details if true, response returns more details for each label in labels field:
104+ * :name, :color, :description, :description_html, :text_color
105+ * @var bool $with_merge_status_recheck If true, this projection requests (but does not guarantee)
106+ * an asynchronous recalculation of the merge_status field.
107+ * Enable the restrict_merge_status_recheck feature flag to ignore
108+ * this attribute when requested by users without the Developer,
109+ * Maintainer, or Owner role.
110+ * @var bool $wip return only draft merge requests (true) or only non-draft merge
65111 * }
66112 *
67- * @throws UndefinedOptionsException if an option name is undefined
68- * @throws InvalidOptionsException if an option doesn't fulfill the specified validation rules
69113 */
70114 public function all (int |string |null $ project_id = null , array $ parameters = []): mixed
71115 {
@@ -81,23 +125,25 @@ public function all(int|string|null $project_id = null, array $parameters = []):
81125 return \count ($ value ) === \count (\array_filter ($ value , 'is_int ' ));
82126 })
83127 ;
84- $ resolver ->setDefined ('state ' )
85- ->setAllowedValues ( ' state ' , [ self :: STATE_ALL , self :: STATE_MERGED , self :: STATE_OPENED , self :: STATE_CLOSED , self :: STATE_LOCKED ] )
86- ;
87- $ resolver -> setDefined ( ' scope ' )
88- -> setAllowedValues ( ' scope ' , [ ' created-by-me ' , ' assigned-to-me ' , ' all ' ] )
128+ $ resolver ->setDefined ('approved_by_ids ' )
129+ ->setAllowedTypes ( ' approved_by_ids ' , ' array ' )
130+ -> setAllowedValues ( ' approved_by_ids ' , function ( array $ value ) {
131+ return \count ( $ value ) === \count ( \array_filter ( $ value , ' is_int ' ));
132+ } )
89133 ;
90- $ resolver ->setDefined ('order_by ' )
91- ->setAllowedValues ('order_by ' , ['created_at ' , 'updated_at ' ])
134+ $ resolver ->setDefined ('approver_ids ' )
135+ ->setAllowedTypes ('approver_ids ' , 'array ' )
136+ ->setAllowedValues ('approver_ids ' , function (array $ value ) {
137+ return \count ($ value ) === \count (\array_filter ($ value , 'is_int ' ));
138+ })
92139 ;
93- $ resolver ->setDefined ('sort ' )
94- ->setAllowedValues ( ' sort ' , [ ' asc ' , ' desc ' ] )
140+ $ resolver ->setDefined ('assignee_id ' )
141+ ->setAllowedTypes ( ' assignee_id ' , ' integer ' )
95142 ;
96- $ resolver ->setDefined ('milestone ' );
97- $ resolver ->setDefined ('view ' )
98- ->setAllowedValues ('view ' , ['simple ' ])
143+ $ resolver ->setDefined ('author_id ' )
144+ ->setAllowedTypes ('author_id ' , 'integer ' )
99145 ;
100- $ resolver ->setDefined ('labels ' );
146+ $ resolver ->setDefined ('author_username ' );
101147 $ resolver ->setDefined ('created_after ' )
102148 ->setAllowedTypes ('created_after ' , \DateTimeInterface::class)
103149 ->setNormalizer ('created_after ' , $ datetimeNormalizer )
@@ -106,7 +152,53 @@ public function all(int|string|null $project_id = null, array $parameters = []):
106152 ->setAllowedTypes ('created_before ' , \DateTimeInterface::class)
107153 ->setNormalizer ('created_before ' , $ datetimeNormalizer )
108154 ;
109-
155+ $ resolver ->setDefined ('deployed_after ' )
156+ ->setAllowedTypes ('deployed_after ' , \DateTimeInterface::class)
157+ ->setNormalizer ('deployed_after ' , $ datetimeNormalizer )
158+ ;
159+ $ resolver ->setDefined ('deployed_before ' )
160+ ->setAllowedTypes ('deployed_before ' , \DateTimeInterface::class)
161+ ->setNormalizer ('deployed_before ' , $ datetimeNormalizer )
162+ ;
163+ $ resolver ->setDefined ('environment ' );
164+ $ resolver ->setDefined ('in ' )
165+ ->setAllowedValues ('in ' , ['title ' , 'description ' , 'title,description ' , 'description,title ' ])
166+ ;
167+ $ resolver ->setDefined ('labels ' );
168+ $ resolver ->setDefined ('merge_user_id ' )
169+ ->setAllowedTypes ('merge_user_id ' , 'integer ' )
170+ ;
171+ $ resolver ->setDefined ('merge_username ' );
172+ $ resolver ->setDefined ('milestone ' );
173+ $ resolver ->setDefined ('my_reaction_emoji ' );
174+ $ resolver ->setDefined ('not ' )
175+ ->setAllowedValues ('not ' , [
176+ 'labels ' , 'milestone ' , 'author_id ' , 'author_username ' , 'assignee_id ' , 'assignee_username ' ,
177+ 'reviewer_id ' , 'reviewer_username ' , 'my_reaction_emoji '
178+ ])
179+ ;
180+ $ resolver ->setDefined ('order_by ' )
181+ ->setAllowedValues ('order_by ' , ['created_at ' , 'updated_at ' ])
182+ ;
183+ $ resolver ->setDefined ('render_html ' )
184+ ->setAllowedTypes ('render_html ' , 'bool ' )
185+ ;
186+ $ resolver ->setDefined ('reviewer_id ' )
187+ ->setAllowedTypes ('reviewer_id ' , 'integer ' )
188+ ;
189+ $ resolver ->setDefined ('reviewer_username ' );
190+ $ resolver ->setDefined ('scope ' )
191+ ->setAllowedValues ('scope ' , ['created-by-me ' , 'assigned-to-me ' , 'reviews_for_me ' , 'all ' ])
192+ ;
193+ $ resolver ->setDefined ('search ' );
194+ $ resolver ->setDefined ('sort ' )
195+ ->setAllowedValues ('sort ' , ['asc ' , 'desc ' ])
196+ ;
197+ $ resolver ->setDefined ('source_branch ' );
198+ $ resolver ->setDefined ('state ' )
199+ ->setAllowedValues ('state ' , [self ::STATE_ALL , self ::STATE_MERGED , self ::STATE_OPENED , self ::STATE_CLOSED , self ::STATE_LOCKED ])
200+ ;
201+ $ resolver ->setDefined ('target_branch ' );
110202 $ resolver ->setDefined ('updated_after ' )
111203 ->setAllowedTypes ('updated_after ' , \DateTimeInterface::class)
112204 ->setNormalizer ('updated_after ' , $ datetimeNormalizer )
@@ -115,30 +207,15 @@ public function all(int|string|null $project_id = null, array $parameters = []):
115207 ->setAllowedTypes ('updated_before ' , \DateTimeInterface::class)
116208 ->setNormalizer ('updated_before ' , $ datetimeNormalizer )
117209 ;
118-
119- $ resolver ->setDefined ('scope ' )
120- ->setAllowedValues ('scope ' , ['created_by_me ' , 'assigned_to_me ' , 'all ' ])
210+ $ resolver ->setDefined ('view ' )
211+ ->setAllowedValues ('view ' , ['simple ' ])
212+ ;
213+ $ resolver ->setDefined ('with_labels_details ' )
214+ ->setAllowedTypes ('with_labels_details ' , 'bool ' )
121215 ;
122- $ resolver ->setDefined ('author_id ' )
123- ->setAllowedTypes ('author_id ' , 'integer ' );
124-
125- $ resolver ->setDefined ('assignee_id ' )
126- ->setAllowedTypes ('assignee_id ' , 'integer ' );
127-
128- $ resolver ->setDefined ('search ' );
129- $ resolver ->setDefined ('source_branch ' );
130- $ resolver ->setDefined ('target_branch ' );
131216 $ resolver ->setDefined ('with_merge_status_recheck ' )
132217 ->setAllowedTypes ('with_merge_status_recheck ' , 'bool ' )
133218 ;
134- $ resolver ->setDefined ('approved_by_ids ' )
135- ->setAllowedTypes ('approved_by_ids ' , 'array ' )
136- ->setAllowedValues ('approved_by_ids ' , function (array $ value ) {
137- return \count ($ value ) === \count (\array_filter ($ value , 'is_int ' ));
138- })
139- ;
140- $ resolver ->setDefined ('reviewer_id ' )
141- ->setAllowedTypes ('reviewer_id ' , 'integer ' );
142219 $ resolver ->setDefined ('wip ' )
143220 ->setAllowedTypes ('wip ' , 'boolean ' )
144221 ->addNormalizer ('wip ' , static function ($ resolver , $ wip ) {
0 commit comments