feat(integrations): add Git hosting integrations and repo listing

Add support for integrating with external Git hosts (GitLab, Gitea,
and Azure DevOps). The backend gains a client to fetch paginated
repository lists, normalise base URLs, and surface provider errors.
Credentials are loaded from the OS keychain and a Tauri command is
exposed for the frontend to list integration repositories.

- Implement integration client with pagination, deserialization,
  and provider-specific handling.
- Centralise keychain credential loading and expose listing command.
- Update UI to manage integration metadata, persist settings, and
  save/remove tokens to the OS keychain for cloning and operations.
This commit is contained in:
2026-08-29 23:25:51 +02:00
parent 823a50ce85
commit 91263547db
10 changed files with 1190 additions and 130 deletions
+3
View File
@@ -3,6 +3,7 @@
mod badge;
mod external_tools;
mod git;
mod integrations;
mod telemetry;
use badge::set_sync_badge;
@@ -32,6 +33,7 @@ use git::{
stash_drop, stash_pop, stash_push, undo_last_commit, unlock_worktree, unstage_files,
untrack_paths, update_remote,
};
use integrations::list_integration_repositories;
use std::path::{Path, PathBuf};
use std::sync::Mutex;
use tauri::{Emitter, Manager};
@@ -432,6 +434,7 @@ async fn main() {
cred_load,
cred_save,
cred_delete,
list_integration_repositories,
set_sync_badge,
close_splashscreen,
set_telemetry_enabled,