How malpor23/gitora works
Gitora is a desktop Git client: users open, clone, or create a repository, inspect and change its working tree/history, then commit and manage branches or remotes. The Angular UI communicates through a shared API to Electron, which runs the installed Git executable; separate provider integrations support account authentication, remote repository discovery, and pull requests. README-documented capabilities include conflict resolution, repository insights, and command-palette actions. Some feature implementations were not sampled, so their internal call relationships are omitted.
Main entry points: bridge.service.ts IPC bridge · app.ts App shell · main.ts Electron main · git-service.ts Git service
Components 25
Desktop interface
- App shell
src/app/app.ts - Workspace
src/app/core/services/workspace.service.ts - Repository state
src/app/core/store/repository.store.ts - Working changes
src/app/features/changes/changes.ts - History viewer
src/app/features/history/viewer/viewer.ts - Git actions
src/app/features/actions/git-flows.service.ts - Command palette
src/app/features/actions/commands.service.ts - Conflict resolver
src/app/features/dialogs/conflict-resolver/conflict-resolver.ts - Repository insights
src/app/features/dialogs/repo-stats/repo-stats.ts - Remote features
src/app/features/remote/pull-requests/pull-requests.ts
Local Git operations
- Git service
electron/git/git-service.ts - Git process runner
electron/git/git-runner.ts - Git output parsers
electron/git/parsers/log.parser.ts - Git flow operations
electron/git/git-flow.ts
Remote providers
- Provider registry
electron/providers/provider-registry.ts - Provider clients
electron/providers/provider.ts - OAuth device flow
electron/providers/oauth.ts
Electron runtime
- IPC bridge
src/app/core/services/bridge.service.ts - Shared API
shared/api.ts - Electron main
electron/main.ts - Repository watcher
electron/repo-watcher.ts - Settings store
electron/settings-store.ts
Other components
- User
- Git hosting services
- Installed Git
Connections 25
- User → App shell: uses
README.md - App shell → Workspace: restores workspace
src/app/app.ts - App shell → Command palette: dispatches commands
src/app/app.ts - App shell → Git actions: uses actions
- App shell → IPC bridge: invokes
- Workspace → Repository state: maintains state
- Working changes → Git actions: requests changes
- History viewer → IPC bridge: requests history
- Conflict resolver → IPC bridge: requests resolution
- Repository insights → IPC bridge: requests analysis
- Remote features → IPC bridge: requests remotes
- IPC bridge → Shared API: uses contract
- Electron main → Shared API: implements operations
electron/main.ts - Electron main → Git service: dispatches Git operations
electron/main.ts - Electron main → Settings store: reads and updates
electron/main.ts - Electron main → Repository watcher: watches repositories
electron/main.ts - Git service → Git process runner: runs commands
electron/git/git-service.ts - Git service → Git output parsers: parses output
electron/git/git-service.ts - Git service → Git flow operations: uses flow operations
electron/git/git-service.ts - Git process runner → Installed Git: spawns
electron/git/git-runner.ts - Provider registry → Provider clients: uses clients
electron/providers/provider-registry.ts - Provider registry → OAuth device flow: starts device flow
electron/providers/provider-registry.ts - Provider registry → Settings store: loads accounts
electron/providers/provider-registry.ts - Provider clients → Git hosting services: calls APIs
- Git process runner → Git hosting services: accesses Git remotes