1.9 KiB
1.9 KiB
Architecture
Overview
git-tui is a single executable Python script that provides a terminal UI for common Git commands.
Module Responsibilities
git-tui:- Initializes and runs the curses application loop.
- Handles startup bootstrap for non-repository directories.
- Handles startup onboarding for repositories without configured remotes.
- Renders a menu-driven UI with keyboard navigation.
- Executes Git subprocess commands and displays command output.
- Executes provider-specific publication for new remote repositories:
- GitHub via
ghCLI. - Gitea via HTTPS API and token-authenticated initial push.
- GitHub via
- Executes provider-specific connection to existing remote repositories:
- GitHub by resolving owner or URL input to
origin. - Gitea by resolving owner, base URL, and SSH/HTTPS transport or full URL input to
origin.
- GitHub by resolving owner or URL input to
- Implements file selection for staged and unstaged operations.
Public API and Contracts
- Command entry point:
git-tuiexecutable script. - Runtime contract:
- Must be executed in a terminal that supports curses.
- Must be run from a writable project directory.
- Requires
gitto be installed and available inPATH. - Requires
ghinPATHonly for GitHub publication. - Requires Gitea API token for Gitea publication.
- Runs Git subprocesses in non-interactive mode to avoid terminal credential prompt deadlocks.
Data Model
ChangedFile:index_status: index status marker fromgit status --short.worktree_status: worktree status marker fromgit status --short.path: repository-relative file path.
Build and Deployment Rules
- No build step is required.
- Deployment is a direct executable file install (copy or symlink).
Cross References
- Usage and install details:
doc/usage.md - Change tracking:
CHANGELOG.md