mirror of
https://github.com/stackblitz-labs/bolt.diy
synced 2025-03-09 21:50:36 +00:00
134 lines
2.4 KiB
TypeScript
134 lines
2.4 KiB
TypeScript
export interface GitHubUserResponse {
|
|
login: string;
|
|
avatar_url: string;
|
|
html_url: string;
|
|
name: string;
|
|
bio: string;
|
|
public_repos: number;
|
|
followers: number;
|
|
following: number;
|
|
public_gists: number;
|
|
created_at: string;
|
|
updated_at: string;
|
|
}
|
|
|
|
export interface GitHubRepoInfo {
|
|
name: string;
|
|
full_name: string;
|
|
html_url: string;
|
|
description: string;
|
|
stargazers_count: number;
|
|
forks_count: number;
|
|
default_branch: string;
|
|
updated_at: string;
|
|
language: string;
|
|
languages_url: string;
|
|
}
|
|
|
|
export interface GitHubContent {
|
|
name: string;
|
|
path: string;
|
|
sha: string;
|
|
size: number;
|
|
url: string;
|
|
html_url: string;
|
|
git_url: string;
|
|
download_url: string;
|
|
type: string;
|
|
content: string;
|
|
encoding: string;
|
|
}
|
|
|
|
export interface GitHubBranch {
|
|
name: string;
|
|
commit: {
|
|
sha: string;
|
|
url: string;
|
|
};
|
|
}
|
|
|
|
export interface GitHubBlobResponse {
|
|
content: string;
|
|
encoding: string;
|
|
sha: string;
|
|
size: number;
|
|
url: string;
|
|
}
|
|
|
|
export interface GitHubOrganization {
|
|
login: string;
|
|
avatar_url: string;
|
|
description: string;
|
|
html_url: string;
|
|
}
|
|
|
|
export interface GitHubEvent {
|
|
id: string;
|
|
type: string;
|
|
created_at: string;
|
|
repo: {
|
|
name: string;
|
|
url: string;
|
|
};
|
|
payload: {
|
|
action?: string;
|
|
ref?: string;
|
|
ref_type?: string;
|
|
description?: string;
|
|
};
|
|
}
|
|
|
|
export interface GitHubLanguageStats {
|
|
[key: string]: number;
|
|
}
|
|
|
|
export interface GitHubStats {
|
|
repos: GitHubRepoInfo[];
|
|
totalStars: number;
|
|
totalForks: number;
|
|
organizations: GitHubOrganization[];
|
|
recentActivity: GitHubEvent[];
|
|
languages: GitHubLanguageStats;
|
|
totalGists: number;
|
|
}
|
|
|
|
export interface GitHubConnection {
|
|
user: GitHubUserResponse | null;
|
|
token: string;
|
|
tokenType: 'classic' | 'fine-grained';
|
|
stats?: GitHubStats;
|
|
}
|
|
|
|
export interface GitHubTokenInfo {
|
|
token: string;
|
|
scope: string[];
|
|
avatar_url: string;
|
|
name: string | null;
|
|
created_at: string;
|
|
followers: number;
|
|
}
|
|
|
|
export interface GitHubRateLimits {
|
|
limit: number;
|
|
remaining: number;
|
|
reset: Date;
|
|
used: number;
|
|
}
|
|
|
|
export interface GitHubAuthState {
|
|
username: string;
|
|
tokenInfo: GitHubTokenInfo | null;
|
|
isConnected: boolean;
|
|
isVerifying: boolean;
|
|
isLoadingRepos: boolean;
|
|
rateLimits?: GitHubRateLimits;
|
|
}
|
|
|
|
export interface RepositoryStats {
|
|
totalFiles: number;
|
|
totalSize: number;
|
|
languages: Record<string, number>;
|
|
hasPackageJson: boolean;
|
|
hasDependencies: boolean;
|
|
}
|