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.
This commit is contained in:
2026-02-15 13:39:43 -03:00
parent d6d5ca3fc3
commit 5e63c01bd2
6 changed files with 910 additions and 16 deletions

92
README.md Normal file
View File

@@ -0,0 +1,92 @@
# git-tui
A single-file terminal UI for common Git workflows.
`git-tui` gives you a keyboard-driven interface for staging, committing, syncing, and bootstrapping repositories without leaving the terminal.
![git-tui avatar](assets/logo-avatar.png)
## Highlights
- Single-file executable (`git-tui`)
- Curses-based terminal UI
- Stage all or select individual files
- Commit with message prompt
- Push, pull (rebase), fetch, status
- Non-repo bootstrap flow:
- Initialize local repository
- Optionally create and publish a new remote repository
- Supports GitHub and Gitea
## Requirements
- Linux or Unix-like terminal with curses support
- Python 3
- Git
- GitHub CLI `gh` only if you choose GitHub publish flow
- Gitea personal access token only if you choose Gitea publish flow
## Installation
```bash
chmod +x git-tui
sudo install -m 755 git-tui /usr/local/bin/gtui
```
## Quick Start
Run from any project directory:
```bash
gtui
```
If the directory is not a Git repository, `git-tui` offers:
- Initialize repository only
- Initialize and publish to a new remote repository
## Gitea Setup
For Gitea publish flow, you can provide values interactively in the TUI or pre-set environment variables:
```bash
export GITEA_URL="https://git.example.com"
export GITEA_OWNER="your-user-or-org"
export GITEA_TOKEN="your-token"
```
Supported variable names:
- `GITEA_URL` or `GITEA_BASE_URL`
- `GITEA_OWNER`
- `GITEA_TOKEN` or `GITEA_ACCESS_TOKEN`
Token handling behavior:
- Token is read from environment when present
- Otherwise token is requested in the TUI
- Token is not persisted by `git-tui`
## Keybindings
- Main menu:
- `Up/Down` or `j/k` move
- `Enter` run action
- `q` or `Esc` quit
- File picker:
- `Space` toggle
- `a` toggle all
- `Enter` confirm
- `q` or `Esc` cancel
## Documentation
- `doc/README.md`
- `doc/usage.md`
- `doc/architecture.md`
- `CHANGELOG.md`
## License
No license file is currently included in this repository.