/** * @param Project $project * @param PayloadInterface $payload * * @todo implement PayloadInterface#getPullRequestUrl and PayloadInterface#getPullRequestTitle * * @return PullRequest */ public function createPullRequestFromPayload(Project $project, $payload) { $json = json_decode($payload, true); $pr = new PullRequest(); $pr->setNumber($json['pull_request']['number']); $pr->setTitle($json['pull_request']['title']); $pr->setRef(sprintf('pull/%d/head', $json['pull_request']['number'])); $pr->setOpen($json['pull_request']['state'] === 'open'); $pr->setUrl(sprintf('https://github.com/%s/pull/%d', $project->getFullName(), $json['pull_request']['number'])); $pr->setProject($project); return $pr; }