'LBRY', 'json_response' => true, 'cache' => false]); } public static function listRoadmapChangesets() { $sets = []; $page = 1; $allReleases = []; do { $releases = static::get('/repos/lbryio/lbry/releases?page=' . $page); $page++; $allReleases = array_merge($allReleases, $releases); } while (count($releases) >= 30); usort($allReleases, function($rA, $rB) { if ($rA['prerelease'] xor $rB['prerelease']) { return $rA['prerelease'] ? -1 : 1; } return $rA['tag_name'] < $rB['tag_name']; }); foreach($allReleases as $release) { // static::get('/repos/lbryio/lbry/releases') $sets[$release['tag_name']] = array_intersect_key($release, ['prerelease' => null]) + [ 'published_at' => date('Y-m-d', strtotime($release['published_at'])), 'body' => ParsedownExtra::instance()->text($release['body']) ]; } return $sets; } }