mirror of
https://github.com/coollabsio/coolify.git
synced 2026-03-11 08:55:47 +00:00
Merge 8abbf284a5 into e1f940dc22
This commit is contained in:
commit
9b3152650b
1 changed files with 17 additions and 2 deletions
|
|
@ -8,6 +8,7 @@ use App\Models\ApplicationDeploymentQueue;
|
|||
use App\Models\ApplicationPreview;
|
||||
use App\Models\EnvironmentVariable;
|
||||
use App\Models\GithubApp;
|
||||
use App\Models\GitlabApp;
|
||||
use App\Models\InstanceSettings;
|
||||
use App\Models\LocalFileVolume;
|
||||
use App\Models\LocalPersistentVolume;
|
||||
|
|
@ -3489,7 +3490,7 @@ NGINX;
|
|||
}
|
||||
}
|
||||
|
||||
function convertGitUrl(string $gitRepository, string $deploymentType, ?GithubApp $source = null): array
|
||||
function convertGitUrl(string $gitRepository, string $deploymentType, GithubApp|GitlabApp|null $source = null): array
|
||||
{
|
||||
$repository = $gitRepository;
|
||||
$providerInfo = [
|
||||
|
|
@ -3504,13 +3505,27 @@ function convertGitUrl(string $gitRepository, string $deploymentType, ?GithubApp
|
|||
// Let's try and parse the string to detect if it's a valid SSH string or not
|
||||
preg_match('/((.*?)\:\/\/)?(.*@.*:.*)/', $gitRepository, $sshMatches);
|
||||
|
||||
// Extract custom port from source for GitLab/GitHub apps with custom ports
|
||||
// This handles SCP-style URLs like git@host:repo.git where host uses non-standard port
|
||||
if ($deploymentType === 'deploy_key' && $source && ! empty($sshMatches)) {
|
||||
switch ($source->getMorphClass()) {
|
||||
case \App\Models\GithubApp::class:
|
||||
case \App\Models\GitlabApp::class:
|
||||
if ($source->custom_port !== null && (int) $source->custom_port !== 22) {
|
||||
$providerInfo['port'] = (int) $source->custom_port;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($deploymentType === 'deploy_key' && empty($sshMatches) && $source) {
|
||||
// If this happens, the user may have provided an HTTP URL when they needed an SSH one
|
||||
// Let's try and fix that for known Git providers
|
||||
switch ($source->getMorphClass()) {
|
||||
case \App\Models\GithubApp::class:
|
||||
case \App\Models\GitlabApp::class:
|
||||
$providerInfo['host'] = Url::fromString($source->html_url)->getHost();
|
||||
$providerInfo['port'] = $source->custom_port;
|
||||
$providerInfo['port'] = ($source->custom_port !== null && $source->custom_port !== '' && (int) $source->custom_port !== 22) ? (int) $source->custom_port : 22;
|
||||
$providerInfo['user'] = $source->custom_user;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue