Metadata-Version: 2.4
Name: gh-prlist
Version: 0.3.0
Summary: Configurable GitHub PR monitor with macOS notifications
Author: Foad Kesheh
Keywords: github,pull-request,cli,notification
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
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 :: Quality Assurance
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# gh-prlist

Configurable GitHub pull-request monitoring with clickable macOS
notifications. The PyPI package is **`gh-prlist`** (`prlist` and `pr-list`
are taken or blocked as too similar). The installed commands are `gh-prlist`,
`pr-list`, and `prlist`. It requires the GitHub CLI (`gh`) to be installed and
authenticated.

```console
uvx gh-prlist setup
uvx gh-prlist list
uvx gh-prlist monitor
uvx gh-prlist monitor --own
uvx gh-prlist monitor --team
uvx gh-prlist monitor --own --team
```

`setup` writes TOML configuration to `~/.prlist`. Command-line options
override that file; run `prlist <command> --help` for all overrides.

The default policies show your open non-draft PRs with failing CI and
non-draft team-review requests with green CI and no explicit merge conflict.
`monitor` checks every ten minutes and writes a clickable report to
`~/.cache/prlist/prs.html`.

Each source can independently filter CI (`green`, `failing`, `any`) and
mergeability (`not_conflicting`, `conflicting`, `any`). Notifications can
include own PRs, team PRs, or both. Change-only notification state persists
across monitor restarts.

Failure ignores are configurable per source as case-insensitive check-name
substrings. They can be entered during `setup` or supplied repeatedly:

```console
gh-prlist monitor --own --own-ignore-failure "Post Plan Checks"
```

Each source can also require labels, which is how you narrow a team-review
queue to one team's routing label. `label_match = "any"` (the default) keeps a
PR carrying at least one of the labels; `"all"` requires every one of them:

```console
gh-prlist monitor --team --team-label "teams/engineering-enablement"
gh-prlist monitor --team --team-label "teams/ee" --team-label "release" --team-label-match all
```

Labels are matched case-insensitively after the search, so PRs dropped by the
filter still appear in the report's "filtered out" section, marked `label
filter`. CI is only fetched for label matches, so narrowing by label makes a
monitor cycle cheaper rather than more expensive.

For clickable notification actions on macOS, install `terminal-notifier`.
Without it, notifications fall back to `osascript`.
