#!/usr/bin/env php * @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ if ($_SERVER['argc'] != 2) { echo "Please specify the new version as argument (e.g. build_changelog.php '1.0.2').\n"; exit(1); } if ($_SERVER['argv'][1] == '--stdin') { $stdIn = file_get_contents('php://stdin'); // XML output from tracker can be directly piped to this script using: // cat tracker_output.xml | php build/build_changelog.php --stdin $xml = simplexml_load_string($stdIn); } else { $fixVersion = $_SERVER['argv'][1]; $query = 'project IN (PHPBB3, SECURITY) AND resolution = Fixed AND fixVersion = "' . $fixVersion . '" AND status IN ("Unverified Fix", Closed)'; $url = 'https://tracker.phpbb.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=' . urlencode($query) . '&tempMax=1000'; $xml = simplexml_load_string(file_get_contents($url)); } $types = []; foreach ($xml->xpath('//item') as $item) { $key = (string) $item->key; $keyUrl = 'https://tracker.phpbb.com/browse/' . $key; $keyLink = '' . $key . ''; $value = str_replace($key, $keyLink, htmlspecialchars($item->title, ENT_COMPAT)); $value = str_replace(']', '] -', $value); $types[(string) $item->type][$key] = $value; } if (count($types)) { ksort($types); foreach ($types as $type => $tickets) { echo "

$type

\n"; echo "\n"; } }