diff --git a/lib/Github/Api/PullRequest/Review.php b/lib/Github/Api/PullRequest/Review.php index 40c8db83127..83182ad3c76 100644 --- a/lib/Github/Api/PullRequest/Review.php +++ b/lib/Github/Api/PullRequest/Review.php @@ -159,11 +159,22 @@ public function submit($username, $repository, $pullRequest, $id, array $params * @param string $repository the repository * @param int $pullRequest the pull request number * @param int $id the review id + * @param string $message a mandatory dismissal message * * @return array|string */ - public function dismiss($username, $repository, $pullRequest, $id) + public function dismiss($username, $repository, $pullRequest, $id, $message) { - return $this->put('/repos/'.rawurlencode($username).'/'.rawurlencode($repository).'/pulls/'.$pullRequest.'/reviews/'.$id.'/dismissals'); + if (!is_string($message)) { + throw new InvalidArgumentException(sprintf('"message" must be a valid string ("%s" given).', gettype($message))); + } + + if (empty($message)) { + throw new InvalidArgumentException('"message" is mandatory and cannot be empty'); + } + + return $this->put('/repos/'.rawurlencode($username).'/'.rawurlencode($repository).'/pulls/'.$pullRequest.'/reviews/'.$id.'/dismissals', [ + 'message' => $message + ]); } } diff --git a/test/Github/Tests/Api/PullRequest/ReviewTest.php b/test/Github/Tests/Api/PullRequest/ReviewTest.php index 54b8d55aafe..441240ecfd3 100644 --- a/test/Github/Tests/Api/PullRequest/ReviewTest.php +++ b/test/Github/Tests/Api/PullRequest/ReviewTest.php @@ -391,7 +391,7 @@ public function shouldDismissReview() ->with('/repos/octocat/Hello-World/pulls/12/reviews/80/dismissals') ->willReturn($expectedValue); - $this->assertSame($expectedValue, $api->dismiss('octocat', 'Hello-World', 12, 80)); + $this->assertSame($expectedValue, $api->dismiss('octocat', 'Hello-World', 12, 80, 'Dismiss reason')); } protected function getApiClass()