private function createPullRequest(OutputInterface $output, $title, $message)
{
$dialog = $this->getHelperSet()->get('dialog');
while (true) {
$username = $dialog->ask($output, 'Please provide your GitHub username (to create a pull request using GitHub API): ');
$returnCode = shell_exec('curl \\
-X POST \\
-k \\
--silent \\
--write-out %{http_code} \\
--stderr /dev/null \\
-o /dev/null \\
-u ' . $username . ' \\
--data "{\\"title\\":\\"[automatic translation update] ' . $title . '\\",\\"body\\":\\"' . $message . '\\",\\"head\\":\\"translationupdates\\",\\"base\\":\\"' . self::GIT_BASE_BRANCH . '\\"}" \\
-H "Accept: application/json" \\
https://api.github.com/repos/piwik/piwik/pulls');
switch ($returnCode) {
case 401:
$output->writeln("Pull request failed. Bad credentials... Please try again");
continue;
case 422:
$output->writeln("Pull request failed. Unprocessable Entity. Maybe a pull request was already created before.");
return;
case 201:
case 200:
$output->writeln("Pull request successfully created.");
return;
default:
$output->writeln("Pull request failed... Please try again");
}
}
}