{"id":45537165,"url":"https://github.com/fabric0de/gitlite","last_synced_at":"2026-02-23T02:39:51.731Z","repository":{"id":338945745,"uuid":"1159793914","full_name":"fabric0de/gitlite","owner":"fabric0de","description":"A fast, open-source desktop Git client built with Rust, Tauri, and Svelte.","archived":false,"fork":false,"pushed_at":"2026-02-17T07:36:04.000Z","size":412,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-17T12:51:25.293Z","etag":null,"topics":["desktop-app","developer-tools","git","git-client","opensource","rust","svelte","tauri"],"latest_commit_sha":null,"homepage":"","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fabric0de.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-17T06:55:53.000Z","updated_at":"2026-02-17T07:51:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fabric0de/gitlite","commit_stats":null,"previous_names":["fabric0de/gitlite"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/fabric0de/gitlite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabric0de%2Fgitlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabric0de%2Fgitlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabric0de%2Fgitlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabric0de%2Fgitlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fabric0de","download_url":"https://codeload.github.com/fabric0de/gitlite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabric0de%2Fgitlite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29735759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T02:24:00.660Z","status":"ssl_error","status_checked_at":"2026-02-23T02:22:56.087Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop-app","developer-tools","git","git-client","opensource","rust","svelte","tauri"],"created_at":"2026-02-23T02:39:50.972Z","updated_at":"2026-02-23T02:39:51.723Z","avatar_url":"https://github.com/fabric0de.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitLite\n\nGitLite is a desktop Git client built with Rust, Tauri, and Svelte.\n\n## Features\n- Repository/branch/commit/diff workflows\n- Stage/unstage/commit operations\n- Remote sync over HTTPS and SSH (`fetch`, `pull`, `push`)\n- Stash management (`list`, `create`, `apply`, `drop`)\n- GitHub OAuth device flow integration\n- Multi-project tabs in one window\n- Responsive 3-panel UI with Dark/Light/System themes\n\n## Tech Stack\n- Backend: Rust, `git2`, Tauri 2\n- Frontend: Svelte 5, Vite, TailwindCSS\n- Testing: Vitest, Playwright, Rust tests\n\n## Repository Structure\n- `/Users/kimjunghyeon/my-workspace/GitLite/src-tauri`: Tauri + Rust backend\n- `/Users/kimjunghyeon/my-workspace/GitLite/ui`: Svelte frontend\n- `/Users/kimjunghyeon/my-workspace/GitLite/docs/IPC.md`: IPC contract\n\n## Quick Start\n\n### Requirements\n- Rust (stable)\n- Node.js 20+\n- pnpm\n\n### Install\n```bash\npnpm run ui:install\n```\n\n### Run UI only\n```bash\npnpm run ui:dev\n```\n\n### Run Tauri app\n```bash\npnpm run tauri:dev\n```\n\n## Quality Checks\n```bash\npnpm run check:all\n```\n\nThis runs:\n- `pnpm run ui:check`\n- `pnpm run ui:test`\n- `pnpm run ui:e2e`\n- `pnpm run tauri:check`\n\nFor large-history UI performance checks:\n```bash\npnpm run ui:e2e:perf\n```\n\n## GitHub OAuth\n1. Create a GitHub OAuth App for device flow.\n2. Set the Client ID in GitLite Settings.\n3. Complete the login flow from the app.\n\nIn Tauri runtime, OAuth tokens are stored in the OS credential store via `keyring`.\n\n## Releases\n- Conventional Commits are required for clean release notes.\n- `release-please` is used for release PR/tag automation.\n- Versioning follows SemVer pre-1.0 with tags like `v0.x.y`.\n\n## Documentation\n- `/Users/kimjunghyeon/my-workspace/GitLite/CONTRIBUTING.md`\n- `/Users/kimjunghyeon/my-workspace/GitLite/CODE_OF_CONDUCT.md`\n- `/Users/kimjunghyeon/my-workspace/GitLite/SECURITY.md`\n- `/Users/kimjunghyeon/my-workspace/GitLite/docs/IPC.md`\n- `/Users/kimjunghyeon/my-workspace/GitLite/docs/versioning-policy.md`\n- `/Users/kimjunghyeon/my-workspace/GitLite/docs/secrets-inventory.md`\n\n## Local Git Hooks\n```bash\n./scripts/setup-hooks.sh\n```\n\n## License\nMIT (`LICENSE`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabric0de%2Fgitlite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabric0de%2Fgitlite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabric0de%2Fgitlite/lists"}