### Added - Non-repository startup flow offering init-only or init+publish paths. - Provider selection for publishing (GitHub via CLI, Gitea via HTTPS API). - Gitea repository creation and initial push over HTTPS with configurable base URL, owner, and token defaults. - Root README and documentation updates describing bootstrap flow and environment variables.
1.6 KiB
1.6 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.
- 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
- 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