fjtui/README.md

86 lines
2.5 KiB
Markdown

# Gitea TUI (fjtui)
A premium interactive CLI TUI Dashboard for exploring Gitea and Forgejo issues directly from your terminal.
## Features
- **Interactive TUI:** A full-featured terminal user interface using Node.js.
- **Multiple Screens:**
- **Setup Wizard:** Easy configuration and connection testing.
- **Repository Picker:** Browse and select repositories seamlessly.
- **Issue List:** View, filter, sort, and search issues in a repository.
- **Issue Details:** Read full issue descriptions and comments in a dedicated view.
- **Create Issue:** Draft and submit new issues directly from the terminal.
- **Add Comment:** Participate in issue discussions seamlessly.
- **Configuration Management:** Save your connection settings and tokens securely for future sessions.
- **Support for Forgejo & Gitea:** Built to integrate smoothly with Forgejo and Gitea APIs.
## Installation
Ensure you have Node.js (v20+) installed.
Clone the repository and install dependencies:
```bash
git clone <repository-url> fjtui
cd fjtui
npm install
```
Build the project:
```bash
npm run build
```
Link globally (optional):
```bash
npm link
```
You can then run the tool anywhere using `gitea-tui`.
## Usage
You can start the interactive setup wizard by simply running:
```bash
npm start
```
Or, if installed globally:
```bash
gitea-tui
```
### Direct Connection
You can also use command-line options to connect directly and bypass the setup wizard:
```bash
npm start -- --url "https://forgejo.example.com" --userid "myuser" --repo "myuser/myrepo" --token "my-access-token"
```
### Command-Line Options
- `-u, --url <url>`: Forgejo/Gitea instance base URL (e.g. `https://forgejo.freshbrewed.science`)
- `-i, --userid <userid>`: Forgejo/Gitea user ID / username
- `-r, --repo <owner/repo>`: Repository path (e.g. `owner/repo`)
- `-t, --token <token>`: Personal Access Token (optional for public repositories)
- `-s, --save`: Save the provided settings to the global config file (`~/.config/fjtui/fjtui.json`)
## Configuration
Settings can be saved interactively via the Setup Wizard or by passing the `-s` or `--save` flag in the CLI. The application configuration file is stored safely at `~/.config/fjtui/fjtui.json`.
## Development
- `npm run build`: Compiles the TypeScript code to JavaScript in the `dist/` directory.
- `npm start`: Runs the built `dist/index.js` file.
## Technologies Used
- **TypeScript** / **Node.js**
- **Commander:** Command-line argument parsing.
- **Chalk:** Terminal styling.
- **Axios:** API interactions.