[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1177":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":14,"starSnapshotCount":14,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},1177,"gitbackup","hiteshchoudhary\u002Fgitbackup","hiteshchoudhary","It was personal script but now it is a complete desktop application to take backup of your github account",null,"TypeScript",336,21,4,0,1,12,4.03,false,"main",true,[],"2026-06-12 02:00:24","# GitBackup\n\nA desktop application to back up all your GitHub repositories locally and optionally to cloud storage (AWS S3 \u002F Cloudflare R2).\n\n![Electron](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FElectron-35-47848F?logo=electron&logoColor=white)\n![React](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact-19-61DAFB?logo=react&logoColor=white)\n![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-5-3178C6?logo=typescript&logoColor=white)\n![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-green)\n\n## Features\n\n- **One-click GitHub backup** — Enter your Personal Access Token and back up all repositories with full code and branches\n- **Smart incremental updates** — First run clones everything; subsequent runs only fetch changes\n- **Flexible repo selection** — Filter by owned, organization, starred, forked, or collaborator repositories\n- **Cloud storage support** — Upload compressed `.tar.gz` archives to AWS S3 or Cloudflare R2\n- **Scheduled backups** — Set daily, weekly, or monthly automatic backups with system tray support\n- **Rate limit aware** — Handles GitHub API pagination and rate limits for accounts with 200-300+ repos\n- **Concurrent processing** — Configurable parallelism (1-10 repos at a time) for faster backups\n- **Real-time progress** — Detailed per-repo status tracking with live log viewer\n- **Secure** — Token stored encrypted locally, cleaned from git remote URLs after operations\n\n## Screenshots\n\n### Setup\nConfigure your GitHub token, backup folder, and optional cloud storage with a guided setup flow.\n\n### Repositories\nBrowse and select repositories with filters for owned, org, starred, forked, and collaborator repos.\n\n### Backup\nMonitor real-time progress with per-repo status, progress bars, and a detailed log viewer.\n\n## Download\n\nDownload the latest version for your platform from the [Releases](https:\u002F\u002Fgithub.com\u002Fhiteshchoudhary\u002Fgitbackup\u002Freleases\u002Flatest) page.\n\n| Platform | File | Notes |\n|----------|------|-------|\n| **macOS** | `GitBackup-x.x.x.dmg` | Open the `.dmg` and drag GitBackup to Applications. On first launch, right-click → Open to bypass Gatekeeper. |\n| **Windows** | `GitBackup-Setup-x.x.x.exe` | Run the installer. Windows Defender may show a warning — click \"More info\" → \"Run anyway\". |\n| **Linux** | `GitBackup-x.x.x.AppImage` | Make it executable: `chmod +x GitBackup-*.AppImage` then run it. |\n\n> **Prerequisite:** [Git](https:\u002F\u002Fgit-scm.com\u002F) must be installed on your system. GitBackup uses it to clone and update repositories.\n\n### Creating a GitHub Token\n\nYou'll need a Personal Access Token to connect your account:\n\n1. Go to [github.com\u002Fsettings\u002Ftokens](https:\u002F\u002Fgithub.com\u002Fsettings\u002Ftokens)\n2. Click **Personal access tokens** → **Tokens (classic)**\n3. Click **Generate new token (classic)**\n4. Select scopes: `repo` (full access) and `read:org` (for org repos)\n5. Click **Generate token** and paste it into the app\n\nFine-grained tokens also work — grant **Repository access → All repositories**.\n\n## Building from Source\n\n### Prerequisites\n\n- [Node.js](https:\u002F\u002Fnodejs.org\u002F) 18+\n- [Git](https:\u002F\u002Fgit-scm.com\u002F) installed and available in PATH\n\n### Installation\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fhiteshchoudhary\u002Fgitbackup.git\ncd gitbackup\nnpm install\n```\n\n### Development\n\n```bash\nnpm run dev\n```\n\nThis starts the Vite dev server with hot reload and launches the Electron app.\n\n### Build & Package\n\n```bash\n# Build for current platform\nnpm run package\n\n# Platform-specific builds\nnpm run package:mac\nnpm run package:win\nnpm run package:linux\n```\n\nPackaged apps are output to the `release\u002F` directory.\n\n## How It Works\n\n1. **Authenticate** — Paste your GitHub PAT. The app validates it and fetches your account info.\n2. **Select repos** — Choose filters (owned, org, starred, etc.) and fetch your repository list. Select which repos to back up.\n3. **Choose backup folder** — Pick a local directory. Repos are cloned as `owner\u002Frepo-name\u002F` with all branches.\n4. **Configure cloud (optional)** — Add AWS S3 or Cloudflare R2 credentials. Each repo is archived as an individual `.tar.gz` and uploaded.\n5. **Run backup** — Click Start. The app clones new repos and fetches updates for existing ones, compresses archives, and uploads to cloud — all with configurable concurrency.\n6. **Schedule (optional)** — Set up daily\u002Fweekly\u002Fmonthly automatic backups. The app runs in the system tray.\n\n## Project Structure\n\n```\ngitbackup\u002F\n├── electron\u002F                    # Main process (Node.js)\n│   ├── main.ts                  # App window, tray, lifecycle\n│   ├── preload.ts               # Secure IPC bridge\n│   ├── tray.ts                  # System tray\n│   ├── ipc\u002F                     # IPC handlers\n│   ├── services\u002F\n│   │   ├── github.service.ts    # GitHub API (Octokit)\n│   │   ├── git.service.ts       # Clone & update repos\n│   │   ├── compress.service.ts  # tar.gz archiving\n│   │   ├── cloud.service.ts     # S3\u002FR2 uploads\n│   │   ├── backup-orchestrator.ts  # Core backup pipeline\n│   │   └── scheduler.service.ts    # Cron scheduling\n│   └── store\u002Fstore.ts           # Encrypted settings\n├── src\u002F                         # Renderer process (React)\n│   ├── pages\u002F                   # Setup, Repos, Backup, Settings\n│   ├── components\u002F              # UI components\n│   └── hooks\u002F                   # IPC & state hooks\n└── resources\u002F                   # App icons\n```\n\n## Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Framework | Electron 35 |\n| Frontend | React 19 + Tailwind CSS |\n| Language | TypeScript 5 |\n| Bundler | Vite 8 |\n| GitHub API | @octokit\u002Frest |\n| Git | simple-git |\n| Cloud | AWS SDK v3 (S3-compatible, works with R2) |\n| Storage | electron-store (encrypted) |\n| Scheduling | node-cron |\n| Packaging | electron-builder |\n\n## Configuration\n\nAll settings are persisted locally in encrypted storage. No data is sent to any third-party service other than GitHub API and your configured cloud storage.\n\n| Setting | Description |\n|---------|-------------|\n| GitHub Token | PAT with `repo` + `read:org` scopes |\n| Backup Path | Local directory for cloned repos |\n| Cloud Provider | None, AWS S3, or Cloudflare R2 |\n| Schedule | Daily \u002F Weekly \u002F Monthly + time |\n| Concurrency | 1-10 parallel repo operations |\n\n## License\n\nMIT\n\n---\n\nA [chaicode.com](https:\u002F\u002Fchaicode.com) product\n","GitBackup 是一个桌面应用程序，用于备份您的所有 GitHub 仓库到本地，并可选地上传到云存储（如 AWS S3 或 Cloudflare R2）。它采用 TypeScript 编写，基于 Electron 和 React 构建，提供一键式 GitHub 备份、智能增量更新、灵活的仓库选择以及定时备份等功能。该应用还支持并发处理以加快备份速度，并且在操作过程中会加密存储个人访问令牌，确保安全。GitBackup 适用于需要定期备份 GitHub 项目的开发者或团队，特别是那些希望将数据同时保存在本地和云端以增加数据冗余性的用户。",2,"2026-06-11 02:42:08","CREATED_QUERY"]