Skip to content

Commit 3ea9650

Browse files
StijnusHayat55claude
authored
feat: gitLab Integration Implementation / github refactor / overal improvements (#1963)
* Add GitLab integration components Introduced PushToGitLabDialog and GitlabConnection components to handle GitLab project connections and push functionality. Includes user authentication, project handling, and UI for seamless integration with GitLab. * Add components for GitLab connection and push dialog Introduce `GitlabConnection` and `PushToGitLabDialog` components to handle GitLab integration. These components allow users to connect their GitLab account, manage recent projects, and push code to a GitLab repository with detailed configurations and feedback. * Fix GitLab personal access tokens link to use correct URL * Update GitHub push call to use new pushToRepository method * Enhance GitLab integration with performance improvements - Add comprehensive caching system for repositories and user data - Implement pagination and search/filter functionality with debouncing - Add skeleton loaders and improved loading states - Implement retry logic for API calls with exponential backoff - Add background refresh capabilities - Improve error handling and user feedback - Optimize API calls to reduce loading times * feat: implement GitLab integration with connection management and repository handling - Add GitLab connection UI components - Implement GitLab API service for repository operations - Add GitLab connection store for state management - Update existing connection components (Vercel, Netlify) - Add repository listing and statistics display - Refactor GitLab components into organized folder structure * fix: resolve GitLab deployment issues and improve user experience - Fix DialogTitle accessibility warnings for screen readers - Remove CORS-problematic attributes from avatar images to prevent loading errors - Enhance GitLab API error handling with detailed error messages - Fix project creation settings to prevent initial commit conflicts - Add automatic GitLab connection state initialization on app startup - Improve deployment dialog UI with better error handling and user feedback - Add GitLab deployment source type to action runner system - Clean up deprecated push dialog files and consolidate deployment components 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: implement GitHub clone repository dialog functionality This commit fixes the missing GitHub repository selection dialog in the "Clone a repo" feature by implementing the same elegant interface pattern used by GitLab. Key Changes: - Added onCloneRepository prop support to GitHubConnection component - Updated RepositoryCard to generate proper GitHub clone URLs (https://github.com/{full_name}.git) - Implemented full GitHub repository selection dialog in GitCloneButton.tsx - Added proper dialog close handling after successful clone operations - Maintained existing GitHub connection settings page functionality Technical Details: - Follows same component patterns as GitLab implementation - Uses proper TypeScript interfaces for clone URL handling - Includes professional dialog styling with loading states - Supports repository search, pagination, and authentication flow The GitHub clone experience now matches GitLab's functionality, providing users with a unified and intuitive repository selection interface across both providers. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Clean up unused connection components - Remove ConnectionForm.tsx (unused GitHub form component) - Remove CreateBranchDialog.tsx (unused branch creation dialog) - Remove RepositoryDialogContext.tsx (unused context provider) - Remove empty components/ directory These files were not referenced anywhere in the codebase and were leftover from development. * Remove environment variables info section from ConnectionsTab - Remove collapsible environment variables section - Clean up unused state and imports - Simplify the connections tab UI * Reorganize connections folder structure - Create netlify/ folder and move NetlifyConnection.tsx - Create vercel/ folder and move VercelConnection.tsx - Add index.ts files for both netlify and vercel folders - Update imports in ConnectionsTab.tsx to use new folder structure - All connection components now follow consistent folder organization --------- Co-authored-by: Hayat Bourgi <[email protected]> Co-authored-by: Hayat55 <[email protected]> Co-authored-by: Claude <[email protected]>
1 parent 8a68560 commit 3ea9650

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+4390
-4014
lines changed

.env.example

Lines changed: 113 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,37 @@ VITE_GITHUB_ACCESS_TOKEN=your_github_personal_access_token_here
117117
# GitHub Token Type ('classic' or 'fine-grained')
118118
VITE_GITHUB_TOKEN_TYPE=classic
119119

120+
# ======================================
121+
# GITLAB INTEGRATION
122+
# ======================================
123+
124+
# GitLab Personal Access Token
125+
# Get your GitLab Personal Access Token here:
126+
# https://gitlab.com/-/profile/personal_access_tokens
127+
#
128+
# This token is used for:
129+
# 1. Importing/cloning GitLab repositories
130+
# 2. Accessing private projects
131+
# 3. Creating/updating branches
132+
# 4. Creating/updating commits and pushing code
133+
# 5. Creating new GitLab projects via the API
134+
#
135+
# Make sure your token has the following scopes:
136+
# - api (for full API access including project creation and commits)
137+
# - read_repository (to clone/import repositories)
138+
# - write_repository (to push commits and update branches)
139+
VITE_GITLAB_ACCESS_TOKEN=
140+
141+
# Set the GitLab instance URL (e.g., https://gitlab.com or your self-hosted domain)
142+
VITE_GITLAB_URL=https://gitlab.com
143+
144+
# GitLab token type should be 'personal-access-token'
145+
VITE_GITLAB_TOKEN_TYPE=personal-access-token
146+
147+
# ======================================
148+
# DEVELOPMENT SETTINGS
149+
# ======================================
150+
120151
# ======================================
121152
# DEVELOPMENT SETTINGS
122153
# ======================================
@@ -139,4 +170,85 @@ DEFAULT_NUM_CTX=32768
139170
# 1. Copy this file to .env.local: cp .env.example .env.local
140171
# 2. Fill in the API keys you want to use
141172
# 3. Restart your development server: npm run dev
142-
# 4. Go to Settings > Providers to enable/configure providers
173+
# 4. Go to Settings > Providers to enable/configure providers
174+
# ======================================
175+
# GITLAB INTEGRATION
176+
# ======================================
177+
178+
# GitLab Personal Access Token
179+
# Get your GitLab Personal Access Token here:
180+
# https://gitlab.com/-/profile/personal_access_tokens
181+
#
182+
# This token is used for:
183+
# 1. Importing/cloning GitLab repositories
184+
# 2. Accessing private projects
185+
# 3. Creating/updating branches
186+
# 4. Creating/updating commits and pushing code
187+
# 5. Creating new GitLab projects via the API
188+
#
189+
# Make sure your token has the following scopes:
190+
# - api (for full API access including project creation and commits)
191+
# - read_repository (to clone/import repositories)
192+
# - write_repository (to push commits and update branches)
193+
VITE_GITLAB_ACCESS_TOKEN=
194+
195+
# Set the GitLab instance URL (e.g., https://gitlab.com or your self-hosted domain)
196+
VITE_GITLAB_URL=https://gitlab.com
197+
198+
# GitLab token type should be 'personal-access-token'
199+
VITE_GITLAB_TOKEN_TYPE=personal-access-token
200+
201+
# ======================================
202+
# GITLAB INTEGRATION
203+
# ======================================
204+
205+
# GitLab Personal Access Token
206+
# Get your GitLab Personal Access Token here:
207+
# https://gitlab.com/-/profile/personal_access_tokens
208+
#
209+
# This token is used for:
210+
# 1. Importing/cloning GitLab repositories
211+
# 2. Accessing private projects
212+
# 3. Creating/updating branches
213+
# 4. Creating/updating commits and pushing code
214+
# 5. Creating new GitLab projects via the API
215+
#
216+
# Make sure your token has the following scopes:
217+
# - api (for full API access including project creation and commits)
218+
# - read_repository (to clone/import repositories)
219+
# - write_repository (to push commits and update branches)
220+
VITE_GITLAB_ACCESS_TOKEN=
221+
222+
# Set the GitLab instance URL (e.g., https://gitlab.com or your self-hosted domain)
223+
VITE_GITLAB_URL=https://gitlab.com
224+
225+
# GitLab token type should be 'personal-access-token'
226+
VITE_GITLAB_TOKEN_TYPE=personal-access-token
227+
228+
229+
# ======================================
230+
# GITLAB INTEGRATION
231+
# ======================================
232+
233+
# GitLab Personal Access Token
234+
# Get your GitLab Personal Access Token here:
235+
# https://gitlab.com/-/profile/personal_access_tokens
236+
#
237+
# This token is used for:
238+
# 1. Importing/cloning GitLab repositories
239+
# 2. Accessing private projects
240+
# 3. Creating/updating branches
241+
# 4. Creating/updating commits and pushing code
242+
# 5. Creating new GitLab projects via the API
243+
#
244+
# Make sure your token has the following scopes:
245+
# - api (for full API access including project creation and commits)
246+
# - read_repository (to clone/import repositories)
247+
# - write_repository (to push commits and update branches)
248+
VITE_GITLAB_ACCESS_TOKEN=
249+
250+
# Set the GitLab instance URL (e.g., https://gitlab.com or your self-hosted domain)
251+
VITE_GITLAB_URL=https://gitlab.com
252+
253+
# GitLab token type should be 'personal-access-token'
254+
VITE_GITLAB_TOKEN_TYPE=personal-access-token

0 commit comments

Comments
 (0)