Example #1
0
 /**
  * @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;
 }
Example #2
0
 /**
  * @param Project $project
  */
 protected function doPullRequests(Project $project)
 {
     // right now, there's no clean way to checkout bitbucket's pull request, so we're just going to not support them
     return;
     // @bitbucketapi sometimes its {owner}, sometimes {accountname}
     // also, URL is wrong in documentation (is 1.0, should be 2.0)
     // see https://confluence.atlassian.com/display/BITBUCKET/pullrequests+Resource#pullrequestsResource-GETalistofopenpullrequests
     $url = sprintf('2.0/repositories/%s/pullrequests?state=OPEN', $project->getFullName());
     foreach ($this->fetchPullRequests($url) as $data) {
         $pr = new PullRequest();
         $pr->setNumber($data['id']);
         $pr->setOpen(true);
         $pr->setTitle($data['title']);
         // $pr->setRef(sprintf('pull/%d/head', $data['number']));
         $pr->setProject($project);
         $project->addPullRequest($pr);
     }
 }
Example #3
0
 /**
  * @param Project $project
  *
  * @return boolean
  */
 protected function doPullRequests(Project $project)
 {
     $url = sprintf('/repos/%s/pulls', $project->getFullName());
     $request = $this->client->get($url);
     $response = $request->send();
     foreach ($response->json() as $data) {
         $pr = new PullRequest();
         $pr->setNumber($data['number']);
         $pr->setOpen($data['state'] === 'open');
         $pr->setTitle($data['title']);
         $pr->setRef(sprintf('pull/%d/head', $data['number']));
         $pr->setProject($project);
         $project->addPullRequest($pr);
     }
 }