Browse Source

Enable pre-releases for beta and daily channel

Signed-off-by: Joas Schilling <coding@schilljs.com>
tags/v16.0.0RC1
Joas Schilling 5 years ago
parent
commit
8e278a2c38
No account linked to committer's email address

+ 6
- 3
lib/private/App/AppStore/Fetcher/AppFetcher.php View File

@@ -83,14 +83,17 @@ class AppFetcher extends Fetcher {
/** @var mixed[] $response */
$response = parent::fetch($ETag, $content);

$allowPreReleases = $this->getChannel() === 'beta' || $this->getChannel() === 'daily';
$allowNightly = $this->getChannel() === 'daily';

foreach($response['data'] as $dataKey => $app) {
$releases = [];

// Filter all compatible releases
foreach($app['releases'] as $release) {
// Exclude all nightly and pre-releases
if($release['isNightly'] === false
&& strpos($release['version'], '-') === false) {
// Exclude all nightly and pre-releases if required
if (($allowNightly || $release['isNightly'] === false)
&& ($allowPreReleases || strpos($release['version'], '-') === false)) {
// Exclude all versions not compatible with the current version
try {
$versionParser = new VersionParser();

+ 21
- 0
lib/private/App/AppStore/Fetcher/Fetcher.php View File

@@ -57,6 +57,8 @@ abstract class Fetcher {
protected $endpointUrl;
/** @var string */
protected $version;
/** @var string */
protected $channel;

/**
* @param Factory $appDataFactory
@@ -197,4 +199,23 @@ abstract class Fetcher {
public function setVersion(string $version) {
$this->version = $version;
}

/**
* Get the currently Nextcloud update channel
* @return string
*/
protected function getChannel() {
if ($this->channel === null) {
$this->channel = \OC_Util::getChannel();
}
return $this->channel;
}

/**
* Set the current Nextcloud update channel
* @param string $channel
*/
public function setChannel(string $channel) {
$this->channel = $channel;
}
}

Loading…
Cancel
Save