feat: support private git repositories with token auth

- Entity: added gitToken and gitBranch columns to Application
- DTO: added gitToken and gitBranch fields to Create/Update DTOs
- Build pipeline: git-clone init container now injects token into
  HTTPS URL for private repo authentication (GitHub PAT, GitLab token, etc.)
- Build pipeline: supports cloning specific branch (default: main)
- Frontend deploy page: added Access Token (password field) and Branch
  inputs when Git Repository source is selected
- Frontend deploy page: Review step shows branch and token status
- Frontend app detail: shows branch badge and 🔑 Private indicator
  when git credentials are configured
- Works with: GitHub, GitLab, Bitbucket, any HTTPS-based git host
This commit is contained in:
keyhan
2026-04-05 16:48:35 +03:30
parent a7ef4649e5
commit 1b1ccfc18f
6 changed files with 116 additions and 9 deletions
@@ -37,6 +37,16 @@ export class CreateApplicationDto {
@IsString()
gitUrl?: string;
@ApiPropertyOptional({ example: 'ghp_xxxxxxxxxxxxxxxxxxxx', description: 'Personal access token for private git repos' })
@IsOptional()
@IsString()
gitToken?: string;
@ApiPropertyOptional({ example: 'main', description: 'Git branch to clone (default: main)' })
@IsOptional()
@IsString()
gitBranch?: string;
@ApiPropertyOptional({ example: { NODE_ENV: 'production', PORT: '3000' } })
@IsOptional()
@IsObject()
@@ -86,6 +96,21 @@ export class UpdateApplicationDto {
@IsString()
description?: string;
@ApiPropertyOptional()
@IsOptional()
@IsString()
gitUrl?: string;
@ApiPropertyOptional({ description: 'Personal access token for private repos' })
@IsOptional()
@IsString()
gitToken?: string;
@ApiPropertyOptional({ description: 'Git branch to clone' })
@IsOptional()
@IsString()
gitBranch?: string;
@ApiPropertyOptional()
@IsOptional()
@IsObject()