| import { Provider } from "#/types/settings"; | |
| interface GitHubErrorReponse { | |
| message: string; | |
| documentation_url: string; | |
| status: number; | |
| } | |
| interface GitUser { | |
| id: string; | |
| login: string; | |
| avatar_url: string; | |
| company: string | null; | |
| name: string | null; | |
| email: string | null; | |
| } | |
| interface Branch { | |
| name: string; | |
| commit_sha: string; | |
| protected: boolean; | |
| last_push_date?: string; | |
| } | |
| interface PaginatedBranchesResponse { | |
| branches: Branch[]; | |
| has_next_page: boolean; | |
| current_page: number; | |
| per_page: number; | |
| total_count?: number; | |
| } | |
| /** | |
| * V1 API response for paginated branch search (cursor-based) | |
| */ | |
| interface BranchPage { | |
| items: Branch[]; | |
| next_page_id: string | null; | |
| } | |
| /** | |
| * V1 API response for paginated repository search (cursor-based) | |
| */ | |
| interface RepositoryPage { | |
| items: GitRepository[]; | |
| next_page_id: string | null; | |
| } | |
| /** | |
| * V1 API response for paginated installation search (cursor-based) | |
| */ | |
| interface InstallationPage { | |
| items: string[]; | |
| next_page_id: string | null; | |
| } | |
| interface GitRepository { | |
| id: string; | |
| full_name: string; | |
| git_provider: Provider; | |
| is_public: boolean; | |
| stargazers_count?: number; | |
| link_header?: string; | |
| pushed_at?: string; | |
| main_branch?: string; | |
| } | |
| interface GitHubCommit { | |
| html_url: string; | |
| sha: string; | |
| commit: { | |
| author: { | |
| date: string; // ISO 8601 | |
| }; | |
| }; | |
| } | |
| interface GithubAppInstallation { | |
| installations: { id: number }[]; | |
| } | |