fix(updater): Paket-Adresse aus Tag und Dateiname bauen, Version 1.0.2
Gitea meldet browser_download_url hinter dem TLS-Proxy mit http://, der Updater lehnte die Adresse ab und fand kein Update. Die Adresse wird jetzt aus dem geprüften Tag und dem Dateinamen gebaut; release-check.sh prüft genauso. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
b2759fba73
commit
c8648d5263
@@ -55,6 +55,28 @@ final class GiteaUpdaterTest extends TestCase
|
||||
self::assertSame('', $this->log());
|
||||
}
|
||||
|
||||
/** @dataProvider reportedAddresses */
|
||||
public function testPackageAddressIsBuiltHereNotTakenFromTheAnswer(string $reported): void
|
||||
{
|
||||
$this->givenRelease(200, self::releaseBody('v1.0.0', self::ZIP_NAME, $reported));
|
||||
|
||||
$update = $this->updater()->offer(false, [], self::BASENAME);
|
||||
|
||||
self::assertSame(self::ZIP, $update['package']);
|
||||
}
|
||||
|
||||
/** @return array<string, array{string}> */
|
||||
public static function reportedAddresses(): array
|
||||
{
|
||||
return [
|
||||
'http, as Gitea behind a TLS proxy reports it' => [
|
||||
'http://' . GiteaUpdater::HOST . '/janniclas.loosen/WP-LIT-MCP/releases/download/v1.0.0/'
|
||||
. self::ZIP_NAME,
|
||||
],
|
||||
'another host' => ['https://evil.example/' . self::ZIP_NAME],
|
||||
];
|
||||
}
|
||||
|
||||
public function testOtherPluginsAreLeftAlone(): void
|
||||
{
|
||||
Functions\expect('wp_remote_get')->never();
|
||||
@@ -104,8 +126,6 @@ final class GiteaUpdaterTest extends TestCase
|
||||
/** @return array<string, array{string}> */
|
||||
public static function unusableReleases(): array
|
||||
{
|
||||
$foreign = 'https://evil.example/releases/download/v1.0.0/' . self::ZIP_NAME;
|
||||
|
||||
return [
|
||||
'no JSON' => ['<html>'],
|
||||
'tag is no version' => [self::releaseBody('latest', self::ZIP_NAME, self::ZIP)],
|
||||
@@ -113,10 +133,7 @@ final class GiteaUpdaterTest extends TestCase
|
||||
'tag with trailing newline' => [self::releaseBody("v1.0.0\n", self::ZIP_NAME, self::ZIP)],
|
||||
'asset missing' => [self::releaseBody('v1.0.0', 'other.zip', self::ZIP)],
|
||||
'release without assets' => ['{"tag_name":"v1.0.0"}'],
|
||||
'package from a foreign host' => [self::releaseBody('v1.0.0', self::ZIP_NAME, $foreign)],
|
||||
'package outside the release downloads' => [
|
||||
self::releaseBody('v1.0.0', self::ZIP_NAME, 'https://' . GiteaUpdater::HOST . '/other/repo/x.zip'),
|
||||
],
|
||||
'asset of another version' => [self::releaseBody('v1.0.0', 'wp-lit-mcp-0.9.0.zip', self::ZIP)],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user