mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
tiny
This commit is contained in:
@@ -372,13 +372,15 @@ $createGitDeployments = function (GitHub $github, string $providerInstallationId
|
||||
// VCS branch preview
|
||||
if (!empty($providerBranch)) {
|
||||
$transformation = new Transformation([new BranchDomain()]);
|
||||
$transformation->setInput([
|
||||
'branch' => $providerBranch,
|
||||
'resourceId' => $resource->getId(),
|
||||
'projectId' => $project->getId(),
|
||||
'sitesDomain' => $sitesDomain,
|
||||
]);
|
||||
$transformation->transform();
|
||||
$transformation
|
||||
->setInput([
|
||||
'branch' => $providerBranch,
|
||||
'resourceId' => $resource->getId(),
|
||||
'projectId' => $project->getId(),
|
||||
'sitesDomain' => $sitesDomain,
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain = $transformation->getOutput();
|
||||
$ruleId = md5($domain);
|
||||
try {
|
||||
|
||||
@@ -299,13 +299,15 @@ class Base extends Action
|
||||
// VCS branch preview
|
||||
if (!empty($providerBranch)) {
|
||||
$transformation = new Transformation([new BranchDomain()]);
|
||||
$transformation->setInput([
|
||||
'branch' => $providerBranch,
|
||||
'resourceId' => $site->getId(),
|
||||
'projectId' => $project->getId(),
|
||||
'sitesDomain' => $sitesDomain,
|
||||
]);
|
||||
$transformation->transform();
|
||||
$transformation
|
||||
->setInput([
|
||||
'branch' => $providerBranch,
|
||||
'resourceId' => $site->getId(),
|
||||
'projectId' => $project->getId(),
|
||||
'sitesDomain' => $sitesDomain,
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain = $transformation->getOutput();
|
||||
$ruleId = md5($domain);
|
||||
try {
|
||||
|
||||
@@ -1040,13 +1040,15 @@ class Builds extends Action
|
||||
$branchName = $deployment->getAttribute('providerBranch');
|
||||
if (!empty($branchName)) {
|
||||
$transformation = new Transformation([new BranchDomain()]);
|
||||
$transformation->setInput([
|
||||
'branch' => $branchName,
|
||||
'resourceId' => $resource->getId(),
|
||||
'projectId' => $project->getId(),
|
||||
'sitesDomain' => $platform['sitesDomain'],
|
||||
]);
|
||||
$transformation->transform();
|
||||
$transformation
|
||||
->setInput([
|
||||
'branch' => $branchName,
|
||||
'resourceId' => $resource->getId(),
|
||||
'projectId' => $project->getId(),
|
||||
'sitesDomain' => $platform['sitesDomain'],
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain = $transformation->getOutput();
|
||||
$ruleId = md5($domain);
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ class BranchDomain extends Adapter
|
||||
|
||||
$branchPrefix = $this->generateBranchPrefix($branch);
|
||||
$resourceProjectHash = substr(hash('sha256', $resourceId . $projectId), 0, self::HASH_SUFFIX_LENGTH);
|
||||
$this->output = "branch-{$branchPrefix}-{$resourceProjectHash}.{$sitesDomain}";
|
||||
$this->output = strtolower("branch-{$branchPrefix}-{$resourceProjectHash}.{$sitesDomain}");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -47,114 +47,135 @@ class TransformationTest extends TestCase
|
||||
$transformer = new Transformation([new BranchDomain()]);
|
||||
|
||||
// Branch name with slash
|
||||
$transformer->setInput([
|
||||
'branch' => 'feature/test',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer->transform();
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'feature/test',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain = $transformer->getOutput();
|
||||
$this->assertStringNotContainsString('/', $domain);
|
||||
$this->assertStringStartsWith('branch-feature-test-', $domain);
|
||||
$this->assertStringEndsWith('.appwrite.network', $domain);
|
||||
$this->assertStringStartsWith('branch-feature-test-', $domain->getOutput());
|
||||
$this->assertStringEndsWith('.appwrite.network', $domain->getOutput());
|
||||
|
||||
// Branch domain consistency
|
||||
$transformer->setInput([
|
||||
'branch' => 'feature/test',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer->transform();
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'feature/test',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain2 = $transformer->getOutput();
|
||||
$this->assertEquals($domain, $domain2);
|
||||
|
||||
// Different resources should produce different domains
|
||||
$transformer->setInput([
|
||||
'branch' => 'feature/test',
|
||||
'resourceId' => 'site789',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer->transform();
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'feature/test',
|
||||
'resourceId' => 'site789',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain2 = $transformer->getOutput();
|
||||
$this->assertNotEquals($domain, $domain2);
|
||||
|
||||
// Different projects should produce different domains
|
||||
$transformer->setInput([
|
||||
'branch' => 'feature/test',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj789',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer->transform();
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'feature/test',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj789',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain2 = $transformer->getOutput();
|
||||
$this->assertNotEquals($domain, $domain2);
|
||||
|
||||
// Some real-world branch names
|
||||
$transformer->setInput([
|
||||
'branch' => 'feature/SER-1234',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer->transform();
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'feature/SER-1234',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain = $transformer->getOutput();
|
||||
$this->assertStringStartsWith('branch-feature-ser-1234-', $domain);
|
||||
$this->assertStringEndsWith('.appwrite.network', $domain);
|
||||
|
||||
$transformer->setInput([
|
||||
'branch' => 'bugfix/fix-login',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer->transform();
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'bugfix/fix-login',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain = $transformer->getOutput();
|
||||
$this->assertStringStartsWith('branch-bugfix-fix-login-', $domain);
|
||||
$this->assertStringEndsWith('.appwrite.network', $domain);
|
||||
|
||||
$transformer->setInput([
|
||||
'branch' => 'hotfix/v1.2.3',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer->transform();
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'hotfix/v1.2.3',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain = $transformer->getOutput();
|
||||
$this->assertStringStartsWith('branch-hotfix-v1-2-3-', $domain);
|
||||
$this->assertStringEndsWith('.appwrite.network', $domain);
|
||||
|
||||
$transformer->setInput([
|
||||
'branch' => 'release/2024.01',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'release/2024.01',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$transformer->transform();
|
||||
$domain = $transformer->getOutput();
|
||||
$this->assertStringStartsWith('branch-release-2024-01-', $domain);
|
||||
$this->assertStringEndsWith('.appwrite.network', $domain);
|
||||
|
||||
$transformer->setInput([
|
||||
'branch' => 'user/john/experiment',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer->transform();
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'user/john/experiment',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain = $transformer->getOutput();
|
||||
$this->assertStringStartsWith('branch-user-john-experiment-', $domain);
|
||||
$this->assertStringEndsWith('.appwrite.network', $domain);
|
||||
|
||||
$transformer->setInput([
|
||||
'branch' => 'dependabot/npm_and_yarn/lodash-4.17.21',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
]);
|
||||
$transformer->transform();
|
||||
$transformer
|
||||
->setInput([
|
||||
'branch' => 'dependabot/npm_and_yarn/lodash-4.17.21',
|
||||
'resourceId' => 'site123',
|
||||
'projectId' => 'proj456',
|
||||
'sitesDomain' => 'appwrite.network'
|
||||
])
|
||||
->setTraits([])
|
||||
->transform();
|
||||
$domain = $transformer->getOutput();
|
||||
$this->assertStringStartsWith('branch-dependabot-npm-and-yarn-lodash-4-17-21-', $domain);
|
||||
$this->assertStringEndsWith('.appwrite.network', $domain);
|
||||
|
||||
Reference in New Issue
Block a user