feat(integrations): add review fetching and Linux keyring support

Add a cross-provider Review Center and improve credential handling.
Backend integrations fetch and normalize PRs from GitHub, GitLab,
Gitea, and Azure DevOps with improved timeouts and parsing. Credentials
now use a global lock and support secret-tool on Linux to avoid races.

- Normalize review data across providers (GitHub/GitLab/Gitea/Azure)
- Serialize credential access with OnceLock and use secret-tool on Linux
- Add frontend ReviewCenter component and related UI updates
This commit is contained in:
2026-09-06 22:53:44 +02:00
parent 2ec493e91f
commit a55a3ca300
11 changed files with 1666 additions and 15 deletions
+33
View File
@@ -65,6 +65,39 @@ export interface GitIntegrationRepository {
private: boolean;
}
export type IntegrationReviewState = "open" | "draft" | "merged" | "closed";
export type IntegrationReviewAction = "merge" | "approve" | "close" | "reopen";
export interface IntegrationReviewComment {
id: string;
author: string;
body: string;
createdAt: string;
}
export interface IntegrationReviewRequest {
id: string;
number: number;
provider: GitIntegrationProvider;
repositoryId: string;
repositoryName: string;
title: string;
description: string;
author: string;
state: IntegrationReviewState;
sourceBranch: string;
targetBranch: string;
webUrl: string;
createdAt: string;
updatedAt: string;
collaborators: string[];
additions: number | null;
deletions: number | null;
changedFiles: number | null;
mergeStatus: "" | "mergeable" | "conflicts" | "checking" | "blocked";
comments: IntegrationReviewComment[];
}
export interface CustomThemeColors {
background: string;
surface: string;