cli / cli/cli

`gh` doesn't respect TERM, dumps colors / codes everywhere, breaks in dumb terms when prompting

Aperta
#5,721 20 commenti 2 reazioni 0 assegnatari Vedi su GitHub
accessibility bug priority-3
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.