diff --git a/lib/Gitlab/Api/Issues.php b/lib/Gitlab/Api/Issues.php index 55fcd2e85..9fa0f74da 100644 --- a/lib/Gitlab/Api/Issues.php +++ b/lib/Gitlab/Api/Issues.php @@ -213,4 +213,14 @@ public function awardEmoji($project_id, $issue_iid) { return $this->get($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_iid).'/award_emoji')); } + + /** + * @param int $project_id + * @param int $issue_iid + * @return mixed + */ + public function closedByMergeRequests($project_id, $issue_iid) + { + return $this->get($this->getProjectPath($project_id, 'issues/'.$this->encodePath($issue_iid)).'/closed_by'); + } } diff --git a/test/Gitlab/Tests/Api/IssuesTest.php b/test/Gitlab/Tests/Api/IssuesTest.php index 727897b37..666d84ecf 100644 --- a/test/Gitlab/Tests/Api/IssuesTest.php +++ b/test/Gitlab/Tests/Api/IssuesTest.php @@ -290,6 +290,26 @@ public function shouldGetIssueAwardEmoji() $this->assertEquals($expectedArray, $api->awardEmoji(1, 2)); } + /** + * @test + */ + public function shouldGetIssueClosedByMergeRequests() + { + $expectedArray = array( + array('id' => 1, 'iid' => '1111', 'title' => 'Just saving the world'), + array('id' => 2, 'iid' => '1112', 'title' => 'Adding new feature to get merge requests that close an issue'), + ); + + $api = $this->getApiMock(); + $api->expects($this->once()) + ->method('get') + ->with('projects/1/issues/2/closed_by') + ->will($this->returnValue($expectedArray)) + ; + + $this->assertEquals($expectedArray, $api->closedByMergeRequests(1, 2)); + } + protected function getApiClass() { return 'Gitlab\Api\Issues';