Files
git-tui/doc/architecture.md
Beda Schmid 5e63c01bd2 Adds non-repo bootstrap and publish flows
### 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.
2026-02-15 13:39:43 -03:00

46 lines
1.6 KiB
Markdown

# 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 `gh` CLI.
- Gitea via HTTPS API and token-authenticated initial push.
- Implements file selection for staged and unstaged operations.
## Public API and Contracts
- Command entry point: `git-tui` executable script.
- Runtime contract:
- Must be executed in a terminal that supports curses.
- Must be run from a writable project directory.
- Requires `git` to be installed and available in `PATH`.
- Requires `gh` in `PATH` only 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 from `git status --short`.
- `worktree_status`: worktree status marker from `git 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`](usage.md)
- Change tracking: [`CHANGELOG.md`](../CHANGELOG.md)