Metadata-Version: 2.4
Name: gl-pipeline-watcher
Version: 0.1.0
Summary: Curses TUI for watching GitLab CI pipelines
Project-URL: Repository, https://gitlab.com/alexandra.tapkova/gl-pipeline-watcher
Author-email: Alexandra Ťapková <git@ouppy.space>
License: MIT
Keywords: ci,curses,devops,gitlab,pipeline,tui
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console :: Curses
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Build Tools
Requires-Python: >=3.9
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Description-Content-Type: text/markdown

# gl-pipeline-watcher

Terminal UI for watching GitLab CI pipelines. Shows pipeline status, job states, last few log lines, and Docker build progress for running and recently failed pipelines.

## Install

```
pip install gl-pipeline-watcher
```

No dependencies outside the standard library.

## Usage

Run from inside a git repo:

```
wp [branch]
```

If no branch is given, the current branch is detected automatically. The GitLab URL and project path are detected from `git remote get-url origin`. Both SSH (`git@host:group/repo`) and HTTPS remotes work.

## Token setup

You need a GitLab personal access token with `read_api` scope.

**Simple:** set `GITLAB_TOKEN` in your environment.

**Per-domain:** create `~/.config/gitlab-pipeline-tokens.json` mapping hostnames to files containing tokens:

```json
{
  "gitlab.example.com": "/path/to/token-file"
}
```

`GITLAB_TOKEN` takes priority over the file map when both are set.

## Environment variables

| Variable | Default | Description |
|---|---|---|
| `GITLAB_TOKEN` | | Token (takes priority over token map) |
| `GITLAB_URL` | auto | Base URL, e.g. `https://gitlab.com` |
| `GITLAB_PROJECT` | auto | Project path, e.g. `mygroup/myrepo` |
| `REFRESH` | `10` | Polling interval in seconds |
| `LOG_LINES` | `5` | Trace lines shown per running/failed job |

## Keys

| Key | Action |
|---|---|
| `j` / `k`, arrow keys | Scroll |
| `PgUp` / `PgDn` | Page up/down |
| `Home` / `End` | Jump to top/bottom |
| `r` | Force refresh |
| `q`, `Esc` | Quit |

## License

MIT
