mirror of
https://github.com/tiennm99/coolify.git
synced 2026-08-09 00:24:58 +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:
@@ -153,6 +153,22 @@ it('removes AWS secret access key', function () {
|
||||
expect($result)->toContain('aws_secret_access_key='.REDACTED);
|
||||
});
|
||||
|
||||
it('removes HTTPS basic auth passwords from git URLs', function () {
|
||||
$testCases = [
|
||||
'https://oauth2:glpat-xxxxxxxxxxxx@gitlab.com/user/repo.git' => 'https://oauth2:'.REDACTED.'@'.REDACTED,
|
||||
'https://user:my-secret-token@gitlab.example.com/group/repo.git' => 'https://user:'.REDACTED.'@'.REDACTED,
|
||||
'http://deploy:token123@git.internal.com/repo.git' => 'http://deploy:'.REDACTED.'@'.REDACTED,
|
||||
];
|
||||
|
||||
foreach ($testCases as $input => $notExpected) {
|
||||
$result = sanitizeLogsForExport($input);
|
||||
// The password should be redacted
|
||||
expect($result)->not->toContain('glpat-xxxxxxxxxxxx');
|
||||
expect($result)->not->toContain('my-secret-token');
|
||||
expect($result)->not->toContain('token123');
|
||||
}
|
||||
});
|
||||
|
||||
it('removes generic URL passwords', function () {
|
||||
$testCases = [
|
||||
'ftp://user:ftppass@ftp.example.com/path' => 'ftp://user:'.REDACTED.'@ftp.example.com/path',
|
||||
|
||||
Reference in New Issue
Block a user