public function index() { $browser = new Buzz\Browser(); $response = $browser->get('http://www.google.com'); echo $browser->getLastRequest() . "\n"; echo $response; }
private function getTransports() { $browserSocket = new \Buzz\Browser(); $browserSocket->setClient(new \Buzz\Client\FileGetContents()); $zendFrameworkOneHttpClientSocket = new \Zend_Http_Client(); $zendFrameworkOneHttpClientSocket->setAdapter(new \Zend_Http_Client_Adapter_Socket()); $zendFrameworkOneHttpClientProxy = new \Zend_Http_Client(); $zendFrameworkOneHttpClientProxy->setAdapter(new \Zend_Http_Client_Adapter_Proxy()); $zendFrameworkTwoHttpClientSocket = new \Zend\Http\Client(); $zendFrameworkTwoHttpClientSocket->setAdapter(new \Zend\Http\Client\Adapter\Socket()); $zendFrameworkTwoHttpClientProxy = new \Zend\Http\Client(); $zendFrameworkTwoHttpClientProxy->setAdapter(new \Zend\Http\Client\Adapter\Proxy()); $artaxClient = new \Amp\Artax\Client(); $transports = array(new fXmlRpc\Transport\StreamSocketTransport(), new fXmlRpc\Transport\BuzzBrowserBridge($browserSocket), new fXmlRpc\Transport\ZendFrameworkOneHttpClientBridge($zendFrameworkOneHttpClientSocket), new fXmlRpc\Transport\ZendFrameworkOneHttpClientBridge($zendFrameworkOneHttpClientProxy), new fXmlRpc\Transport\ZendFrameworkTwoHttpClientBridge($zendFrameworkTwoHttpClientSocket), new fXmlRpc\Transport\ZendFrameworkTwoHttpClientBridge($zendFrameworkTwoHttpClientProxy), new fXmlRpc\Transport\ArtaxBrowserBridge($artaxClient)); if (extension_loaded('curl') && !in_array('php_curl', $this->disabledExtensions)) { $browserCurl = new \Buzz\Browser(); $browserCurl->setClient(new \Buzz\Client\Curl()); $transports[] = new fXmlRpc\Transport\BuzzBrowserBridge($browserCurl); $zendFrameworkOneHttpClientCurl = new \Zend_Http_Client(); $zendFrameworkOneHttpClientCurl->setAdapter(new \Zend_Http_Client_Adapter_Curl()); $transports[] = new fXmlRpc\Transport\ZendFrameworkOneHttpClientBridge($zendFrameworkOneHttpClientCurl); $zendFrameworkTwoHttpClientCurl = new \Zend\Http\Client(); $zendFrameworkTwoHttpClientCurl->setAdapter(new \Zend\Http\Client\Adapter\Curl()); $transports[] = new fXmlRpc\Transport\ZendFrameworkTwoHttpClientBridge($zendFrameworkTwoHttpClientCurl); $guzzle = new \Guzzle\Http\Client(); $transports[] = new fXmlRpc\Transport\GuzzleBridge($guzzle); $transports[] = new fXmlRpc\Transport\CurlTransport(); } return $transports; }
/** * Returns gravatar profile information for a given email address * * Valid Formats include: json, xml, php, vcf, qr * If a format is not specified, the profile will be returned in hCard format * * Due to the way the gravatar api's work, json and qr formats return a url * string for use in img and script tags * * @param String $email * @param String $format * @return Array|String */ public function getProfile($email, $format = null, $secure = null) { $hash = $this->getHash($email); $extension = ''; if (null !== $format) { $extension = strtolower($format); } if (null === $secure) { $secure = $this->settings['secure']; } $url = ($secure ? 'https://secure' : 'http://www') . '.gravatar.com/' . $hash . '.' . $extension; if ($format === 'qr' || $format === 'json') { return $url; } $browser = new \Buzz\Browser(); if ($format !== 'php') { $response = $browser->get($url, $this->headers[$format]); } else { $response = $browser->get($url); } if ($response->isOk()) { if ($format === 'php') { return unserialize($response->getContent()); } else { return $response->getContent(); } } elseif ($response->isNotFound()) { throw new GravatarException($response->getStatusCode() . ' Error: There is no profile associated with this email address.'); } else { throw new GravatarException($response->getStatusCode() . ' Error: There was an error trying to fetch this profile.'); } return; }
function downloadJson($url, $file) { $browser = new Buzz\Browser(); // send request $response = $browser->get($url); $content = $response->getContent(); $filename = __DIR__ . '/fixtures/' . $file; file_put_contents($filename, $content); }
public function fetch(Url $url) { if ($url->isImage()) { return new Resource($url, '', '', $url, null, 'image'); } $browser = new \Buzz\Browser(new \Buzz\Client\Curl()); $response = $browser->get((string) $url); $parsedData = (new Parser())->parse($response->getContent(), $url); return new Resource($url, $parsedData->title, $parsedData->description, null !== $parsedData->imageUrl ? new Url($parsedData->imageUrl) : null, null !== $parsedData->videoUrl ? new Url($parsedData->videoUrl) : null, $parsedData->type); }
public function setup() { $browser = new \Buzz\Browser(); $curl = new \Buzz\Client\Curl(); $curl->setOption(CURLOPT_USERAGENT, "WoeidFinder/0.1"); $browser->setClient($curl); $nomatimAdapter = new \Famex\WoeidFinder\Adapters\NomatimAdapter(); $nomatimAdapter->setBrowser($browser); $yqlQueryAdapter = new \Famex\WoeidFinder\Adapters\YqlQueryAdapter(); $yqlQueryAdapter->setBrowser($browser); $this->woeidFinder = new \Famex\WoeidFinder\WoeidFinder(); $this->woeidFinder->setNomatimAdapter($nomatimAdapter); $this->woeidFinder->setYqlQueryAdapter($yqlQueryAdapter); }
/** * @Route("/admin/plugins/getPackagesFromPackagist") */ public function searchOnPackagistAction(Request $request) { $response = new JsonResponse(); $query = $request->get('q', ''); $client = new \Buzz\Client\Curl(); $client->setTimeout(3600); $browser = new \Buzz\Browser($client); $packagistResponse = $browser->get('https://packagist.org/search.json?type=newscoop-plugin&q=' . $query); $packages = json_decode($packagistResponse->getContent(), true); $results = $packages['results']; $this->aasort($results, 'downloads'); // hide already installed plugins $cleanResults = array(); $pluginService = $this->container->get('newscoop.plugins.service'); foreach ($results as $resultKey => $package) { $installed = false; foreach ($pluginService->getAllAvailablePlugins() as $key => $plugin) { if ($package['name'] == $plugin->getName()) { $installed = true; $packages['total'] = $packages['total'] - 1; } } if (!$installed) { $cleanResults[] = $package; } } $packages['results'] = $cleanResults; return $response->setData($packages); }
/** * Use basic auth with a key comprised of our consumer key/consumer token * to request a bearer token. */ public function getToken() { if (!is_null($this->token)) { return $this->token; } $auth_key = $this->getAuthKey(); $browser = new \Buzz\Browser(new \Buzz\Client\Curl()); $headers = array(); $headers['Authorization'] = 'Basic ' . $auth_key; $headers['User-Agent'] = phpversion(); $response = $browser->post('https://api.twitter.com/oauth2/token', $headers, 'grant_type=client_credentials'); if (!$response->isOk()) { throw new \Exception($response->getReasonPhrase()); } else { return json_decode($response->getContent())->access_token; } }
/** * Send request to refresh article cache on Facebook * * @param int $number * @param int $languageId * * @return mixed response from Facebook about url, or array with error message */ private function clearpageCache($number, $languageId) { $article = new \Article($languageId, $number); if (!$article->isPublished()) { return array('message' => $this->get('translator')->trans('fb.label.errornot')); } $url = \ShortURL::GetURL($article->getPublicationId(), $article->getLanguageId(), $article->getIssueNumber(), $article->getSectionNumber(), $article->getArticleNumber()); try { $curlClient = new \Buzz\Client\Curl(); $curlClient->setTimeout(10000); $browser = new \Buzz\Browser($curlClient); $result = $browser->post('https://graph.facebook.com/?id=' . $url . '&scrape=true'); $urlInfo = json_decode($result->getContent(), true); } catch (\Buzz\Exception\ClientException $e) { return array('message' => $this->get('translator')->trans('fb.label.error')); } return $urlInfo; }
* * @example * * $ php import_tickets.php DDC */ require_once 'vendor/autoload.php'; require_once 'jira_markdown.php'; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); if (!isset($argv[1])) { printf("Missing argument: Project Key\n"); exit(1); } $project = $argv[1]; $projects = (require 'projects.php'); $client = new \Buzz\Browser(); if (!isset($projects[$project])) { printf("Unknown project: {$project}\n"); exit(2); } $githubRepository = $projects[$project]; $githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json']; $jiraHeaders = ['Authorization: Basic ' . base64_encode(sprintf('%s:%s', $_SERVER['JIRA_USER'], $_SERVER['JIRA_PASSWORD']))]; $ticketStatus = []; if (file_exists('data/' . $project . '.status.json')) { $ticketStatus = json_decode(file_get_contents('data/' . $project . '.status.json'), true); } $files = scandir('data/' . $project); if (isset($argv[2])) { $files = [$argv[2] . ".json"]; }
<?php require_once 'vendor/autoload.php'; require_once 'jira_markdown.php'; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); $githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN']]; $client = new \Buzz\Browser(); $response = $client->get('https://api.github.com/rate_limit', $githubHeaders); var_dump(json_decode($response->getContent(), true));
public function fetchHttp($url) { $hosts = $this->di->get('config')->phantomjs->hosts->toArray(); shuffle($hosts); $host = reset($hosts); $post = 'url=' . $url; $browser = new \Buzz\Browser(); try { $response = $browser->post($host, array(), $post); } catch (\Buzz\Exception\ClientException $e) { $this->flashJson(500, array(), $e->getMessage()); return false; } return $response->getContent(); }
<?php include_once 'vendor/autoload.php'; use Symfony\Component\Stopwatch\Stopwatch; $stopwatch = new Stopwatch(); $stopwatch->start('eventName'); include_once 'vendor/autoload.php'; $url = 'http://api.openweathermap.org/data/2.5/weather?q=London&APPID=96cdeb166e66f9c035e9e7f8ce665ec8'; $browser = new Buzz\Browser(); $response = $browser->get($url); $content = $response->getContent(); $weatherObject = json_decode($content); // var_dump($weatherObject->main->temp); $a = $weatherObject->main->temp; $b = $a - 273; $c = round($b); echo 'Temperatura w ' . $weatherObject->name . ' wynosi: ' . "\n" . $c . '.' . ' st. Celcjusza' . "\n"; $event = $stopwatch->stop('eventName'); echo 'Wyswietlono w: ' . $event->getDuration() . 'ms' . "\n";
<?php /** * Run composer install, first ofcourse. * * Example implementation usage * - Creates new Buzz/Curl instance * - Logs in to API * - Fetches issue, plus it's children / parent * - Sets issue status to built, with a comment. * - Logs time on issue * - Fetches all WorkItem lines for the issue (logged time) */ require 'vendor/autoload.php'; require 'src/YouTrack/YouTrackCommunicator.php'; $client = new Buzz\Browser(); $client->setClient(new Buzz\Client\Curl()); $api = new \YouTrack\YouTrackCommunicator($client, array(' uri' => 'https://youtrack.myhost.com', 'username' => 'myUser', 'password' => 'myPassword')); // find issue entities from a string, by parsing issue $issueIDs = $api->findIds("re #MYPRJ-1, fixes #MYPRJ-2, reopens #MYPRJ-3"); if (count($issueIDs) > 0) { $issues = $api->searchIssues($issueIDs); print_r($issues); } // finding a single issue does not use the #prefix findIds does! $myIssue = $api->getIssue('MYPRJ-1'); $api->executeCommands($myIssue, ['State', 'Built'], 'I just closed this automagically.'); $api->trackTimeOnIssue($myIssue, 120, 'Time booked via YouTrackCommunicator API'); $loggedWork = $api->getWorkItemsForIssue($myIssue);
/** * @expectedException \Vnphp\PlagiarismChecker\Exception\ApiCallException */ public function testException() { $apiResponse = $this->getResponseMock(['error_code' => 142, 'error_desc' => 'Нехватка баланса']); $this->browser->expects($this->once())->method('post')->with("http://api.text.ru/post")->will($this->returnValue($apiResponse)); $this->api->request('test'); }
<?php require_once 'vendor/autoload.php'; require_once 'jira_markdown.php'; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); if (!isset($argv[1])) { printf("Missing argument: Project Key\n"); exit(1); } $project = $argv[1]; $projects = (require 'projects.php'); $client = new \Buzz\Browser(); if (!isset($projects[$project])) { printf("Unknown project: {$project}\n"); exit(2); } $githubRepository = $projects[$project]; $githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json']; if (!file_exists('data/' . $project . '.issues.json')) { printf("Requires issue numbers file.\n"); exit(3); } $issueNumbers = json_decode(file_get_contents('data/' . $project . '.issues.json'), true); $files = scandir('data/' . $project); if (isset($argv[2])) { $files = [$argv[2] . ".json"]; } $count = 0; foreach ($files as $file) { if ($file === "." || $file === "..") {
private function getDocument($uri) { // Create a CURL client $cURL = new \Buzz\Client\Curl(); $cURL->setVerifyPeer(false); $cURL->setTimeout(30); // Get discovery document $browser = new \Buzz\Browser($cURL); $response = $browser->get(\URL::to($uri)); // Document content return $response->getContent(); }
require_once 'vendor/autoload.php'; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); if (!isset($argv[1])) { printf("Missing argument: Project Key\n"); exit(1); } $project = $argv[1]; $projects = (require 'projects.php'); if (!isset($projects[$project])) { printf("Unknown project: {$project}\n"); exit(2); } $githubRepository = $projects[$project]; $githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN']]; $client = new \Buzz\Browser(); $response = $client->get($_SERVER['JIRA_URL'] . "/rest/api/2/project/{$project}/versions"); if ($response->getStatusCode() !== 200) { printf("Could not fetch versions of project '{$project}'\n"); printf($response->getStatusCode()); exit(2); } $versions = json_decode($response->getContent(), true); $skipVersions = ['Git Master']; $milestones = []; foreach ($versions as $version) { $version['name'] = preg_replace('(^v)', '', $version['name']); if (in_array($version['name'], $skipVersions)) { continue; } $milestone = ['title' => $version['name'], 'state' => $version['released'] ? 'closed' : 'open'];
<?php require_once 'vendor/autoload.php'; require_once 'jira_markdown.php'; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); if (!isset($argv[1])) { printf("Missing argument: Project Key\n"); exit(1); } $project = $argv[1]; $projects = (require 'projects.php'); $client = new \Buzz\Browser(); if (!isset($projects[$project])) { printf("Unknown project: {$project}\n"); exit(2); } $githubRepository = $projects[$project]; $githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json']; $page = 1; $numbers = []; while (true) { $response = $client->get('https://api.github.com/repos/doctrine/' . $githubRepository . '/issues?state=all&page=' . $page, $githubHeaders); if ($response->getStatusCode() != 200) { exit; } $issues = json_decode($response->getContent(), true); if (count($issues) === 0) { file_put_contents("data/" . $project . ".issues.json", json_encode($numbers, JSON_PRETTY_PRINT)); exit; }
/** * Execute the console command. * * @return mixed */ public function fire() { // How many alerts to request from mongo $count = Config::get('kuu.cron_batch_size'); // KUU Email Settings $email_from_address = Config::get('kuu.email_from_address'); $email_from_name = Config::get('kuu.email_from_name'); $email_bcc = Config::get('kuu.email_bcc'); // time in seconds, how often to notify $alert_interval_24hrs = Config::get('kuu.alert_interval_24hrs'); // 20 mins $alert_interval_over_24hrs = Config::get('kuu.alert_interval_over_24hrs'); // a day $http_error_descriptions = Config::get('kuu.http_error_descriptions'); $url = Config::get('kuu.apiurl') . '/rest/popalerts?api_key=' . Config::get('kuu.apikey') . '&count=' . $count; $browser = new Buzz\Browser(); $response = $browser->get($url); $response_array = json_decode($response->getContent()); //$checkAlertEmail = new CheckAlertEmail(); if (isset($response_array->Result) && $response_array->Result == 'OK') { $mail_counter = 0; foreach ($response_array->Records as $record_id => $record) { $record->time_formatted = date("m/d H:i:s T", $record->timestamp - $record->downtime); $record->title = 'Site is ' . Str::title($record->type); // $this->info('Record '.print_r($record, TRUE)); $alert_emails = CheckAlertEmail::getAlertEmailsByMongoId($record->check_id); // $alert_emails = CheckAlertEmail::getAlertEmailsByMongoId('5357d420685fabd7490000a4'); // $this->info('Alert Emails '.print_r($alert_emails, TRUE)); //DB::select('SELECT * FROM checks LEFT JOIN checks_alert_email USING (check_id) // LEFT JOIN users ON checks_alert_email.user_id=users.id WHERE mongo_id = ?', // array('5322c33f3cdffe9926000099')); // array($record->check_id)); foreach ($alert_emails as $id => $email) { // $this->info('Alert email '.print_r($alert_emails, TRUE)); $since_last_time = time() - strtotime($email->last_sent . " GMT"); $times_sent = $email->times_sent; // $this->info('since_last_time '.$since_last_time.' '.$times_sent.' '.$alert_interval_24hrs.' '.$alert_interval_over_24hrs); // $this->info('down since '.$record->downtime.' '. (24*60*60) .'seconds in a day ' . $email_from_address.' '.$email_from_name); $isDown = $record->type == 'down'; $trigger_send = false; // if total downtime less than a day, use $alert_interval_24hrs, otherwise use if ($record->downtime < 24 * 60 * 60 && $since_last_time >= $alert_interval_24hrs) { $trigger_send = true; } elseif ($record->downtime >= 24 * 60 * 60 && $since_last_time >= $alert_interval_over_24hrs) { $trigger_send = true; } if ($trigger_send || !$isDown) { //$this->info($email->alert_email.' '.$email->first_name.' '.$email->last_name); $record->alert_email = $email; $record->protocol = $email->type; $record->http_error_descriptions = $http_error_descriptions; $email->subject = $record->title . " - " . $email->url . " - " . $email->type; $email->from_address = $email_from_address; $email->from_name = $email_from_name; $email->bcc_admin = $email_bcc; Mail::send('emails.cronalert', (array) $record, function ($message) use($email) { $message->from($email->from_address, $email->from_name); // Remove To email name, you can set alerts to go to 3rd parties, name won't be valid // $message->to($email->alert_email, $email->first_name.' '.$email->last_name) $message->to($email->alert_email)->subject($email->subject); foreach ($email->bcc_admin as $e) { $message->bcc($e); } //$message->to('*****@*****.**', 'Andrei Tsygankov')->subject('Alerts'); }); $mail_counter++; //$this->info($email->alert_id.' '.$record->type.' '.$email->last_name); if ($isDown) { CheckAlertEmail::where('alert_id', $email->alert_id)->update(array('last_sent' => gmdate("Y-m-d H:i:s"), 'times_sent' => $times_sent + 1)); } else { CheckAlertEmail::where('alert_id', $email->alert_id)->update(array('last_sent' => '0000-00-00 00:00:00', 'times_sent' => 0)); } } } // just send to admin /* if(!count($alert_emails)) { Mail::send('emails.cronalert', (array)$record, function($message) { $message->from('*****@*****.**', 'KeepUsUp'); $message->to('*****@*****.**', 'Admin') ->subject('Alerts') //->cc('*****@*****.**') ; }); $mail_counter++; } */ } $this->info('Successfully sent ' . $mail_counter . ' emails'); } else { if (isset($response_array->Result)) { $this->info('Failed with result=' . $response_array->Result); } else { $this->info('Failed with to fetch REST API data'); } } }
public function sendRequest($method, $path, array $options = array()) { $path = ltrim($path, '/'); // leading slash in path fails in github:enterprise $token = null; if (!empty($options['access_token'])) { $token = $options['access_token']; } else { if (!empty($options['oauth_token'])) { $token = $options['oauth_token']; } else { $token = $this->configuration()->get('oauth_token'); } } $force_urlencoded = false; if (!empty($options['force_urlencoded']) && $options['force_urlencoded']) { $force_urlencoded = true; } $url = null; if (!empty($options['endpoint'])) { $url = $options['endpoint']; } else { $url = $this->configuration()->get('api_endpoint'); } $connection = $this->connection()->create($options); $listener = $connection['listener']; $options = $connection['options']; $connection = $connection['connection']; if (!empty($options['accept'])) { $connection->addHeader('Accept: ' . $options['accept']); } else { $connection->addHeader('Accept: application/vnd.github.beta+json'); } if ($token) { $connection->addHeader('Authorization: token ' . $token); } $browser = new \Buzz\Browser(); if ($this->fixture) { $request_client = new Request\FixtureRequest($this->fixture); } else { $request_client = new \Buzz\Client\Curl(); } $browser->setClient($request_client); if (!empty($listener)) { $browser->addListener($listener); } if (strtolower($method) == 'get') { $path .= '?' . http_build_query($options); } elseif (in_array(strtolower($method), array('patch', 'post', 'put'))) { $connection->setContent(json_encode($options, true)); } $connection->fromUrl($url); $connection->setResource('/' . $path); $connection->setMethod($method); $request_host = $this->configuration()->get('request_host'); if (!empty($request_host)) { $connection->setHost($request_host); } $response = $browser->send($connection); $this->fixture = false; $this->handleErrors($connection, $response); return $response; }
* with a link. * * @example * * $ php attachments.php DDC */ require_once 'vendor/autoload.php'; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); if (!isset($argv[1])) { printf("Missing argument: Project Key\n"); exit(1); } $project = $argv[1]; $projects = (require 'projects.php'); $client = new \Buzz\Browser(); if (!isset($projects[$project])) { printf("Unknown project: {$project}\n"); exit(2); } $githubRepository = $projects[$project]; $githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json']; $issueMap = json_decode(file_get_contents('data/' . $project . '.issues.json'), true); $issues = scandir('data/attachments/' . $project); $count = 0; foreach ($issues as $issue) { if (!isset($issueMap[$issue])) { continue; } $count++; if (isset($argv[2]) && $count <= $argv[2]) {
$dotenv->load(); if (!isset($argv[1])) { printf("Missing argument: Project Key\n"); exit(1); } $project = $argv[1]; $projects = (require 'projects.php'); if (!isset($projects[$project])) { printf("Unknown project: {$project}\n"); exit(2); } $startAt = isset($argv[2]) ? (int) $argv[2] : 0; $githubRepository = $projects[$project]; $githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN']]; $jiraHeaders = ['Authorization: Basic ' . base64_encode(sprintf('%s:%s', $_SERVER['JIRA_USER'], $_SERVER['JIRA_PASSWORD']))]; $client = new \Buzz\Browser(); $response = $client->get('https://api.github.com/repos/doctrine/' . $githubRepository . '/milestones?state=all&per_page=100', $githubHeaders); if ($response->getStatusCode() !== 200) { printf("Could not fetch existing Github Milestones\n"); var_dump($response->getContent()); exit(3); } $existingMilestones = []; foreach (json_decode($response->getContent(), true) as $existingMilestone) { $existingMilestones[$existingMilestone['title']] = $existingMilestone['number']; } $count = 0; @mkdir("data/" . $project, 0777); $knownIssueTypes = ['Bug', 'New Feature', 'Improvement']; $knownAssigneesMap = ['beberlei' => 'beberlei', 'guilhermeblanco' => 'guilhermeblanco', 'jwage' => 'jwage', 'asm89' => 'asm89', 'ocramius' => 'ocramius', 'deeky666' => 'deeky666', 'fabio.bat.silva' => 'FabioBatSilva', 'hobodave' => 'hobodave', 'jmikola' => 'jmikola', 'kimhemsoe' => 'kimhemsoe', 'lsmith' => 'lsmith77', 'wschalle' => 'zeroedin-bill', 'doctrinebot' => 'doctrinebot']; while (true) {
<?php require_once 'vendor/autoload.php'; require_once 'jira_markdown.php'; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); if (!isset($argv[1])) { printf("Missing argument: Project Key\n"); exit(1); } $project = $argv[1]; $projects = (require 'projects.php'); $client = new \Buzz\Browser(); if (!isset($projects[$project])) { printf("Unknown project: {$project}\n"); exit(2); } $githubRepository = $projects[$project]; $githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json']; $jiraHeaders = ['Authorization: Basic ' . base64_encode(sprintf('%s:%s', $_SERVER['JIRA_USER'], $_SERVER['JIRA_PASSWORD']))]; $ticketStatus = []; if (file_exists('data/' . $project . '.status.json')) { $ticketStatus = json_decode(file_get_contents('data/' . $project . '.status.json'), true); } if (isset($ticketStatus[$argv[2]])) { $response = $client->get($ticketStatus[$argv[2]]['url'], $githubHeaders); if ($response->getStatusCode() >= 400) { var_dump($response->getContent()); exit(2); } $issue = json_decode(file_get_contents('data/' . $project . '/' . $argv[2] . '.json'), true);
public static function httpRequest($url, $method = \Buzz\Message\RequestInterface::METHOD_GET) { $buzz = new \Buzz\Browser(new \Buzz\Client\Curl()); try { $response = $buzz->call($url, $method); } catch (\RuntimeException $e) { return false; } return $response->getContent(); }
<?php require_once 'vendor/autoload.php'; require_once 'jira_markdown.php'; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); if (!isset($argv[1])) { printf("Missing argument: Project Key\n"); exit(1); } $project = $argv[1]; $projects = (require 'projects.php'); if (!isset($projects[$project])) { printf("Unknown project: {$project}\n"); exit(2); } $jiraHeaders = ['Authorization: Basic ' . base64_encode(sprintf('%s:%s', $_SERVER['JIRA_USER'], $_SERVER['JIRA_PASSWORD']))]; $client = new \Buzz\Browser(); $response = $client->get($_SERVER['JIRA_URL'] . "/rest/api/2/issue/" . $argv[2], $jiraHeaders); var_dump(json_decode($response->getContent(), true));
<?php require_once 'vendor/autoload.php'; $dotenv = new Dotenv\Dotenv(__DIR__); $dotenv->load(); $client = new \Buzz\Browser(); $githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN']]; $githubRepository = "dbal"; $response = $client->get('https://api.github.com/repos/doctrine/' . $githubRepository . '/milestones?state=all&per_page=100', $githubHeaders); if ($response->getStatusCode() !== 200) { printf("Could not fetch existing Github Milestones\n"); var_dump($response->getContent()); exit(3); } foreach (json_decode($response->getContent(), true) as $existingMilestone) { if ($existingMilestone['title'] == '2.5') { continue; } $response = $client->delete('https://api.github.com/repos/doctrine/' . $githubRepository . '/milestones/' . $existingMilestone['number'], $githubHeaders); echo $response->getContent() . "\n"; }
// @see http://brunorocha.org/python/dealing-with-linked-containers-dependency-in-docker-compose.html // for a better solution sleep(1); } } $channel = $connection->channel(); $channel->queue_declare('bookmark', false, false, false, false); echo ' [*] Waiting for messages. To exit press CTRL+C', "\n"; $fetcher = new Fetcher(); $callback = function ($msg) use($fetcher) { echo " [x] Received ", $msg->body, "\n"; $message = json_decode($msg->body); $url = $message->url; $resource = $fetcher->fetch(new Url($url)); echo sprintf('%s: %s%s', 'URL', $resource->getUrl(), PHP_EOL); echo sprintf('%s: %s%s', 'Type', $resource->getType(), PHP_EOL); echo sprintf('%s: %s%s', 'Title', $resource->getTitle(), PHP_EOL); echo sprintf('%s: %s%s', 'Description', $resource->getDescription(), PHP_EOL); echo sprintf('%s: %s%s', 'Image URL', $resource->getImageUrl(), PHP_EOL); echo sprintf('%s: %s%s', 'Video URL', $resource->getVideoUrl(), PHP_EOL); // call API $url = sprintf('http://api:8080/%s', $message->uuid); $headers = array('Content-Type' => 'application/json'); $payload = json_encode((object) array('type' => $resource->getType(), 'title' => $resource->getTitle(), 'description' => $resource->getDescription(), 'imageUrl' => null !== $resource->getImageUrl() ? (string) $resource->getImageUrl() : null, 'videoUrl' => null !== $resource->getVideoUrl() ? (string) $resource->getVideoUrl() : null)); $browser = new \Buzz\Browser(new \Buzz\Client\Curl()); $browser->post($url, $headers, $payload); }; $channel->basic_consume('bookmark', '', false, true, false, false, $callback); while (true) { $channel->wait(); }