86 lines
2.5 KiB
Markdown
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.
|