Added changlog gen script
This commit is contained in:
parent 9ddcf4e122
commit 4464051700
1 changed files with 71 additions and 0 deletions
71 scripts/gen-changelog Executable file
71
scripts/gen-changelog Executable file | @ -0,0 +1,71 @@ | |||
#!/usr/bin/php | ||||
<?php | ||||
| ||||
function error($text) { | ||||
echo $text . "\n"; | ||||
exit(1); | ||||
} | ||||
| ||||
function output($text) { | ||||
echo $text . "\n"; | ||||
} | ||||
| ||||
function getJSON($url) { | ||||
$ch = curl_init(); | ||||
curl_setopt_array($ch, [ | ||||
CURLOPT_URL => $url, | ||||
CURLOPT_RETURNTRANSFER => 1, | ||||
CURLOPT_HTTPHEADER => [ | ||||
'User-Agent: ssddanbrown', | ||||
] | ||||
]); | ||||
$data = curl_exec($ch); | ||||
| ||||
$err = curl_error($ch); | ||||
curl_close($ch); | ||||
if (!empty($err)) error($err); | ||||
| ||||
return json_decode($data, true); | ||||
} | ||||
| ||||
// Check a milestone is provided | ||||
if (count($argv) < 2) { | ||||
error("Milestone ID required"); | ||||
} | ||||
| ||||
// Get milestone info from GitHub | ||||
$milestoneID = intval($argv[1]); | ||||
$issueURL = 'https://api.github.com/repos/BookStackApp/BookStack/issues?milestone='. $milestoneID .'&state=all'; | ||||
$issues = getJSON($issueURL); | ||||
| ||||
// Get BookStack version and check if a feature or minor release | ||||
$milestone = $issues[0]['milestone']; | ||||
$versionMatch = []; | ||||
preg_match('/v[0-9.]{5,7}/', $milestone['title'], $versionMatch); | ||||
$version = $versionMatch[0]; | ||||
$splitVersion = explode('.', $version); | ||||
$isFeature = intval(array_pop($splitVersion)) === 0; | ||||
| ||||
// Output title | ||||
output("# BookStack Beta {$version}\n"); | ||||
| ||||
// Output header text and links | ||||
if ($isFeature) { | ||||
$urlVersion = implode('0', $splitVersion); | ||||
output("- [Update instructions](https://www.bookstackapp.com/docs/admin/updates)"); | ||||
output("- [Update details on blog](https://www.bookstackapp.com/blog/beta-release-{$urlVersion}/)"); | ||||
output("\n### Full List of Changes\n"); | ||||
} else { | ||||
output("\nThis release contains the following fixes and changes:\n"); | ||||
} | ||||
| ||||
// Output issues | ||||
foreach ($issues as $issue) { | ||||
$output = '* '; | ||||
$output .= trim($issue['title'], '.') . '.'; | ||||
if (isset($issue['pull_request']) && $issue['user']['login'] !== 'ssddanbrown') { | ||||
$output .= " Thanks to [@{$issue['user']['login']}]({$issue['html_url']})."; | ||||
} | ||||
$output .= " ([#{$issue['number']}]({$issue['html_url']}))"; | ||||
output($output); | ||||
} |
Loading…
Add table
Add a link
Reference in a new issue