`gh` doesn't respect TERM, dumps colors / codes everywhere, breaks in dumb terms when prompting
- Lingua principale
- Go
- Stelle
- 46.3k
- Fork
- 9k
- Merge medio
- 2g 6h
- PR unite (30g)
- 97
Descrizione
### Describe the bug
```
9979 % gh --version
gh version 2.11.3 (2022-05-25)
https://github.com/cli/cli/releases/tag/v2.11.3
9980 % gh pr create
78? Where should we push the 'zenspider/fix/get-remote-branch' branch? [Use arrows to move, type to filter]
> zenspider/browse-at-remote
Skip pushing the branch
Cancel
7 C-c C-c8
```
### Steps to reproduce the behavior
1. open a shell "somewhere dumb". This can be a remote host that doesn't have your shiny mac terminal app, or in can be a shell in emacs, or whatever.
2. use any subcommand that prompts w/ those damn menus.
3. See above
### Expected vs actual behavior
If the termcap doesn't say you have the abilities to do cursor movements, don't do prompts... probably treat it like there's no TTY on stdin:
```
9981 % gh pr create < /dev/null
must provide `--title` and `--body` (or `--fill`) when not running interactively
Usage: gh pr create [flags]
...
```
Aside: I've found that EVERY damn command line tool written in go is guilty of this behavior and when I've gone to the libraries responsible for these interactions, they've been less than helpful. So, it's really on you to step up and make this tool useable in more than one context. PLEASE don't pass the buck to the go library you're using because they don't give a shit.
### Logs
see above
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Start with the interactive prompt used by `gh pr create` and reproduce it in a shell with limited terminal capabilities or with stdin redirected from `/dev/null`. Done means prompts do not emit raw cursor or color escape codes in dumb terminals, and noninteractive use reports the required title and body flags.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- go
- Ambito
- cli
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100