feat(integrations): add Git hosting providers and Clone UI
Add integrations for GitHub, GitLab (cloud & self-hosted), Azure DevOps, and Gitea, storing personal access tokens in the operating system keychain. Azure DevOps supports multiple independently configurable organizations, and the Clone → Integrations tab loads, filters, sorts, and clones repositories using stored credentials. Update the API contract, help overlay, README, changelog, and application version metadata to document and ship the feature. - Add list_integration_repositories API command and related types - New Clone → Integrations UI with search, refresh, and direct clone - Store tokens in OS keychain and support multiple Azure DevOps orgs
This commit is contained in:
@@ -101,6 +101,20 @@ interface GitLfsFile {
|
||||
oid: string;
|
||||
version: string;
|
||||
}
|
||||
|
||||
type GitIntegrationProvider = "github" | "gitlab" | "gitlab-self-hosted" | "azure-devops" | "gitea";
|
||||
|
||||
interface IntegrationRepository {
|
||||
id: string;
|
||||
name: string;
|
||||
fullName: string;
|
||||
description: string;
|
||||
cloneUrl: string;
|
||||
sshUrl: string;
|
||||
webUrl: string;
|
||||
updatedAt: string;
|
||||
private: boolean;
|
||||
}
|
||||
```
|
||||
|
||||
## Commands
|
||||
@@ -110,6 +124,7 @@ The command list below includes the repository-management and synchronization AP
|
||||
- `open_repository(path: string): Promise<GitStatus>`
|
||||
- `init_repository(path: string, initialBranch?: string): Promise<GitStatus>`
|
||||
- `clone_repository(...): Promise<RepositoryBundle>`
|
||||
- `list_integration_repositories(provider: GitIntegrationProvider, baseUrl: string, accountId?: string): Promise<IntegrationRepository[]>`; loads credentials from the operating system keychain and returns every repository accessible through the configured Git hosting account.
|
||||
- `get_status(path: string): Promise<GitStatus>`
|
||||
- `git_lfs_status(path: string): Promise<GitLfsStatus>`
|
||||
- `git_lfs_install(path: string): Promise<GitLfsStatus>`
|
||||
|
||||
Reference in New Issue
Block a user