Skip to content

Commit 053a5f3

Browse files
authored
Merge pull request #487 from Dyflexis/implement-mr-rebase-api
Implement merge request API rebase endpoint
2 parents a4c3d16 + ac5b9b9 commit 053a5f3

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

lib/Gitlab/Api/MergeRequests.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,4 +379,19 @@ public function awardEmoji($project_id, $mr_iid)
379379
{
380380
return $this->get($this->getProjectPath($project_id, 'merge_requests/'.$this->encodePath($mr_iid).'/award_emoji'));
381381
}
382+
383+
/**
384+
* @param int $project_id
385+
* @param int $mr_id
386+
* @param array $params
387+
* @return mixed
388+
*/
389+
public function rebase($project_id, $mr_id, array $params = [])
390+
{
391+
$resolver = $this->createOptionsResolver();
392+
$resolver->setDefined('skip_ci')
393+
->setAllowedTypes('skip_ci', 'bool');
394+
395+
return $this->put($this->getProjectPath($project_id, 'merge_requests/'.$this->encodePath($mr_id)).'/rebase', $resolver->resolve($params));
396+
}
382397
}

test/Gitlab/Tests/Api/MergeRequestsTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,4 +518,23 @@ protected function getApiClass()
518518
{
519519
return 'Gitlab\Api\MergeRequests';
520520
}
521+
522+
/**
523+
* @test
524+
*/
525+
public function shouldRebaseMergeRequest()
526+
{
527+
$expectedArray = array('rebase_in_progress' => true);
528+
529+
$api = $this->getApiMock();
530+
$api->expects($this->once())
531+
->method('put')
532+
->with('projects/1/merge_requests/2/rebase', array('skip_ci' => true))
533+
->will($this->returnValue($expectedArray))
534+
;
535+
536+
$this->assertEquals($expectedArray, $api->rebase(1, 2, array(
537+
'skip_ci' => true,
538+
)));
539+
}
521540
}

0 commit comments

Comments
 (0)