Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/semior001/glmrl
tui for listing gitlab merge requests with advanced filters
https://github.com/semior001/glmrl
Last synced: about 1 month ago
JSON representation
tui for listing gitlab merge requests with advanced filters
- Host: GitHub
- URL: https://github.com/semior001/glmrl
- Owner: Semior001
- License: mit
- Created: 2023-11-16T11:05:38.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-28T10:51:24.000Z (about 1 year ago)
- Last Synced: 2023-11-29T08:36:55.688Z (about 1 year ago)
- Language: Go
- Size: 55.7 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# glmrl
tui for listing gitlab merge requests with advanced filters## install
`go install github.com/Semior001/glmrl/glmrl@latest`## usage
```
Usage:
glmrl [OPTIONS] list [list-OPTIONS]Application Options:
-c, --config= path to config file (default: ~/.glmrl/config.yaml)
--dbg turn on debug mode [$DEBUG]gitlab:
--gitlab.base-url= gitlab host [$GITLAB_BASE_URL]
--gitlab.token= gitlab token with read_api scope [$GITLAB_TOKEN]trace:
--trace.enabled enable tracing [$TRACE_ENABLED]
--trace.host= jaeger agent host [$TRACE_HOST]
--trace.port= jaeger agent port [$TRACE_PORT]Help Options:
-h, --help Show this help message[list command options]
--state= list only merge requests with the given state
--approved-by-me=[true|false] list only merge requests approved by me
--without-my-unresolved-threads list only merge requests without MY unresolved threads, but lists threads where my action is
required
--not-enough-approvals=[true|false] list only merge requests with not enough approvals, but show the ones where I've been
requested as a reviewer and didn't approve it
--action=[open|copy] action to perform on pressing enter (default: open)
--poll-interval= interval to poll for new merge requests, 0 means no polling, only manual refresh (default: 5m)labels:
--labels.include= list only entries that include the given value
--labels.exclude= list only entries that exclude the given valueauthors:
--authors.include= list only entries that include the given value
--authors.exclude= list only entries that exclude the given valueproject-paths:
--project-paths.include= list only entries that include the given value
--project-paths.exclude= list only entries that exclude the given valuesort:
--sort.by=[created|updated|title] sort by the given field (default: created)
--sort.order=[asc|desc] sort in the given order (default: desc)pagination:
--pagination.page= page number
--pagination.per-page= number of items per page
```If pagination is not specified, it will show all pull requests that match the filters.
### config
You can save the config file with git engine credentials and use it instead of passing them as command line arguments.
The location of the config file is `~/.glmrl/config.yaml` by default, or you can specify it with `--config` flag.example:
```yaml
gitlab:
token:
base_url: https://gitlab.com
```## example
```
I can review only the MRs that:
- are open,
- have a label "to-review",
- are not approved by me,
- doesn't have enough approvals,
- but I still want to see MRs with enough approvals where I've been requested as a reviewer and didn't approve it,
- doesn't have my unresolved threads
- but I still want to see MRs with my unresolved threads where my action is not the last (i.e. somebody replied in my thread and didn't resolve it).When I press enter, I want to open the MR in my default browser.
```command example:
```bash
glmrl list --action=open --state=open --labels.include='to-review' --approved-by-me=false --not-enough-approvals=true --without-my-unresolved-threads
```