mirror of
https://github.com/coollabsio/coolify.git
synced 2026-06-19 07:35:25 +00:00
feat(gitlab): add GitLab source integration with SSH and HTTP basic auth
Add full GitLab application source support for git operations: - Implement SSH-based authentication using private keys with configurable ports - Support HTTP basic auth for HTTPS GitLab URLs (with or without deploy keys) - Handle private key setup and SSH command configuration in both Docker and local modes - Support merge request checkouts for GitLab with SSH authentication Improvements to credential handling: - URL-encode GitHub access tokens to handle special characters properly - Update log sanitization to redact passwords from HTTPS/HTTP URLs - Extend convertGitUrl() type hints to support GitlabApp sources Add test coverage and seed data: - New GitlabSourceCommandsTest with tests for private key and public repo scenarios - Test for HTTPS basic auth password sanitization in logs - Seed data for GitLab deploy key and public example applications
This commit is contained in:
@@ -4,6 +4,7 @@ namespace Database\Seeders;
|
||||
|
||||
use App\Models\Application;
|
||||
use App\Models\GithubApp;
|
||||
use App\Models\GitlabApp;
|
||||
use App\Models\StandaloneDocker;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
@@ -98,5 +99,36 @@ CMD ["nginx", "-g", "daemon off;"]
|
||||
CMD ["sh", "-c", "echo Crashing in 5 seconds... && sleep 5 && exit 1"]
|
||||
',
|
||||
]);
|
||||
Application::create([
|
||||
'uuid' => 'gitlab-deploy-key',
|
||||
'name' => 'GitLab Deploy Key Example',
|
||||
'fqdn' => 'http://gitlab-deploy-key.127.0.0.1.sslip.io',
|
||||
'git_repository' => 'git@gitlab.com:coollabsio/php-example.git',
|
||||
'git_branch' => 'main',
|
||||
'build_pack' => 'nixpacks',
|
||||
'ports_exposes' => '80',
|
||||
'environment_id' => 1,
|
||||
'destination_id' => 0,
|
||||
'destination_type' => StandaloneDocker::class,
|
||||
'source_id' => 1,
|
||||
'source_type' => GitlabApp::class,
|
||||
'private_key_id' => 1,
|
||||
]);
|
||||
Application::create([
|
||||
'uuid' => 'gitlab-public-example',
|
||||
'name' => 'GitLab Public Example',
|
||||
'fqdn' => 'http://gitlab-public.127.0.0.1.sslip.io',
|
||||
'git_repository' => 'https://gitlab.com/andrasbacsai/coolify-examples.git',
|
||||
'base_directory' => '/astro/static',
|
||||
'publish_directory' => '/dist',
|
||||
'git_branch' => 'main',
|
||||
'build_pack' => 'nixpacks',
|
||||
'ports_exposes' => '80',
|
||||
'environment_id' => 1,
|
||||
'destination_id' => 0,
|
||||
'destination_type' => StandaloneDocker::class,
|
||||
'source_id' => 1,
|
||||
'source_type' => GitlabApp::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,5 +15,12 @@ class ApplicationSettingsSeeder extends Seeder
|
||||
$application_1 = Application::find(1)->load(['settings']);
|
||||
$application_1->settings->is_debug_enabled = false;
|
||||
$application_1->settings->save();
|
||||
|
||||
$gitlabPublic = Application::where('uuid', 'gitlab-public-example')->first();
|
||||
if ($gitlabPublic) {
|
||||
$gitlabPublic->load(['settings']);
|
||||
$gitlabPublic->settings->is_static = true;
|
||||
$gitlabPublic->settings->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user