public function convertMergeRequestFromApi($mrApi) { if (!is_array($mrApi)) { return null; } $mr = new Model\MergeRequest(); $state = Model\MergeRequest::STATE_OPENED; switch ($mrApi['state']) { case 'merged': $state = Model\MergeRequest::STATE_MERGED; break; case 'closed': $state = Model\MergeRequest::STATE_CLOSED; break; } $mr->setRaw($mrApi)->setId($mrApi['iid'])->setGlobalId($mrApi['id'])->setName($mrApi['title'])->setSourceBranchName($mrApi['source_branch'])->setTargetBranchName($mrApi['target_branch'])->setState($state)->setAuthor($this->convertMergeRequestUserFromApi($mrApi['author'])); if (!empty($mrApi['assignee'])) { $mr->setAssignee($this->convertMergeRequestUserFromApi($mrApi['assignee'])); } return $mr; }
/** * @inheritdoc */ protected function doPostMergeRequest(Model\MergeRequest $mergeRequest) { $mrApi = $this->getClient()->api('merge_requests')->create($mergeRequest->getProject()->getId(), $mergeRequest->getSourceBranchName(), $mergeRequest->getTargetBranchName(), $mergeRequest->getName(), $mergeRequest->getAssignee()->getId()); $mr = $this->converter->convertMergeRequestFromApi($mrApi); $mr->setProject($mergeRequest->getProject())->setSourceBranch($mergeRequest->getSourceBranch())->setTargetBranch($mergeRequest->getTargetBranch()); return $mr; }