[ 'name' => 'Release Channel', 'type' => 'list', 'required' => true, 'defaultValue' => self::STABLE, 'values' => [ 'Stable' => self::STABLE, 'Beta' => self::BETA, 'Alpha' => self::ALPHA, ], ] ] ]; public function getReleaseFeed($jsonUrl) { $json = getContents($jsonUrl) or returnServerError('Could not request Core OS Website.'); return json_decode($json, true); } public function collectData() { $data = $this->getReleaseFeed($this->getJsonUri()); foreach ($data as $releaseVersion => $release) { $item = []; $item['uri'] = "https://coreos.com/releases/#$releaseVersion"; $item['title'] = $releaseVersion; $item['content'] = nl2br($release['release_notes']); $item['content'] .= << Major Software:
- Kernel: {$release['major_software']['kernel'][0]}
- Docker: {$release['major_software']['docker'][0]}
- etcd: {$release['major_software']['etcd'][0]}
EOT; $item['timestamp'] = strtotime($release['release_date']); $this->items[] = $item; } } private function getJsonUri() { $channel = $this->getInput('channel'); return "https://coreos.com/releases/releases-$channel.json"; } public function getURI() { return self::URI; } public function getName(){ if(!is_null($this->getInput('channel'))) { return 'Container Linux Releases: ' . $this->getInput('channel') . ' Channel'; } return parent::getName(); } }