public function updateCommitStatus($owner, $repos, $sha, $buildRef, $status, $description = "", $ciUrl = "")
 {
     $client = new GitHubClient();
     $settings = GitProviderSettings::singleton();
     if ($settings->username) {
         $client->setCredentials($settings->username, $settings->password);
     }
     $client->repos->statuses->createStatus($owner, $repos, $sha, $this->convertStatus($status), $ciUrl, $description, $buildRef);
 }
 /**
  * Add a status to a commit
  *
  * @param string $owner
  * @param string $repos
  * @param string $sha
  * @param string $buildRef
  * @param string $status A status from the GitProvider::STATUS_XXX set of constants
  * @param string $description An optional description
  * @param string $ciUrl A URL for the full build status.
  * @return mixed
  */
 public function updateCommitStatus($owner, $repos, $sha, $buildRef, $status, $description = "", $ciUrl = "")
 {
     $statusEndPoint = new BitbucketBuildStatus();
     $settings = GitProviderSettings::singleton();
     if ($settings->username) {
         $statusEndPoint->getClient()->addListener(new BasicAuthListener($settings->username, $settings->password));
     }
     $params = [];
     if ($description != "") {
         $params["description"] = $description;
     }
     $statusEndPoint->create($owner, $repos, $sha, $buildRef, $this->convertStatus($status), $ciUrl, $params);
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     parent::execute($input, $output);
     $providerName = $input->getArgument("provider");
     $owner = $input->getArgument("owner");
     $repos = $input->getArgument("repos");
     $sha = $input->getArgument("sha");
     $ref = $input->getArgument("ref");
     $state = $input->getArgument("state");
     $url = $input->getArgument("url");
     $description = $input->getArgument("description");
     $username = $input->getOption("username");
     $password = $input->getOption("password");
     if ($username) {
         $settings = GitProviderSettings::singleton();
         $settings->username = $username;
         $settings->password = $password;
     }
     /**
      * @var GitProvider $provider
      */
     $provider = null;
     switch ($providerName) {
         case "bitbucket":
             $provider = new BitbucketGitProvider();
             break;
         case "github":
             $provider = new GitHubGitProvider();
             break;
     }
     if ($provider != null) {
         $provider->updateCommitStatus($owner, $repos, $sha, $ref, $state, $description, $url);
     } else {
         $output->writeln("Error: The provider `{$providerName}` wasn't recognised.");
     }
 }