threads / discuss / 46901

disable interactive prompting

Subject: disable interactive prompting

## tl;dr

5 messages between Oct 4, 2017 and Oct 4, 2017.

replies: 4people: 3as markdown or json

Ernesto Alfonso· Oct 4, 2017, 16:10 UTC · lore
Hi,

Waiting for git-push synchronously slows me down, so I have a bash alias/function to do this in the background. But when my origin is https, I get an undesired interactive prompt. I've tried to disable by redirecting stdin:

git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null
but I still get an interactive prompt.
Is there a way to either
1. disable interactive prompting
2. programmatically determine whether a git command (or at least a git
push) would interactively prompt
Thanks,
Ernesto
Jonathan Nieder· Oct 4, 2017, 17:01 UTC · re: Ernesto Alfonso · lore

Re: disable interactive prompting

Hi Ernesto,
Ernesto Alfonso wrote:
Show 14 quoted lines
> Waiting for git-push synchronously slows me down, so I have a bash
> alias/function to do this in the background. But when my origin is https, I
> get an undesired interactive prompt. I've tried to disable by
> redirecting stdin:
>
> git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null
>
> but I still get an interactive prompt.
>
> Is there a way to either
>
> 1. disable interactive prompting
> 2. programmatically determine whether a git command (or at least a git
> push) would interactively prompt

You left out an important detail: what does the interactive prompt in question say?

The general question is also interesting, but seeing the particular prompt would make it easy to look into the specific case at the same time.

Thanks, Jonathan

Ernesto Alfonso· Oct 4, 2017, 17:09 UTC · re: Jonathan Nieder · lore

Re: disable interactive prompting

Hi,
The prompt asks for my https username/password:
Show 11 quoted lines
> $ grv
> origin	https://github.com/user/dotemacs (fetch)
> origin	https://github.com/user/dotemacs (push)
> $ gpom
> [1] 22549
> $ Username for 'https://github.com': 
> $ fg
> { git push origin master &>/dev/null < /dev/null; LAST=$?; test 0 -eq $LAST || echo "gpom failed with $LAST !"; }
> Password for 'https://asd,csd@github.com': 
> gpom failed with 128 !
> $ 
Thanks,
Ernesto
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 28 quoted lines
> Hi Ernesto,
>
> Ernesto Alfonso wrote:
>
>> Waiting for git-push synchronously slows me down, so I have a bash
>> alias/function to do this in the background. But when my origin is https, I
>> get an undesired interactive prompt. I've tried to disable by
>> redirecting stdin:
>>
>> git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null
>>
>> but I still get an interactive prompt.
>>
>> Is there a way to either
>>
>> 1. disable interactive prompting
>> 2. programmatically determine whether a git command (or at least a git
>> push) would interactively prompt
>
> You left out an important detail: what does the interactive prompt in
> question say?
>
> The general question is also interesting, but seeing the particular
> prompt would make it easy to look into the specific case at the same
> time.
>
> Thanks,
> Jonathan
Jeff King· Oct 4, 2017, 17:05 UTC · re: Ernesto Alfonso · lore

Re: disable interactive prompting

On Wed, Oct 04, 2017 at 09:10:48AM -0700, Ernesto Alfonso wrote:
Show 14 quoted lines
> Waiting for git-push synchronously slows me down, so I have a bash
> alias/function to do this in the background. But when my origin is https, I
> get an undesired interactive prompt. I've tried to disable by
> redirecting stdin:
> 
> git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null
> 
> but I still get an interactive prompt.
> 
> Is there a way to either
> 
> 1. disable interactive prompting
> 2. programmatically determine whether a git command (or at least a git
> push) would interactively prompt

I assume the prompt is for credentials, since that's generally the only thing git-push will prompt for.

Try:
  $ git help git | sed -ne '/PROMPT/,/^$/p'
         GIT_TERMINAL_PROMPT
           If this environment variable is set to 0, git will not prompt on
           the terminal (e.g., when asking for HTTP authentication).

Of course that just stops the prompting. If Git needs a credential and you don't provide it, then the push will fail.

For advice on that that, try "git help credentials".
-Peff
Ernesto Alfonso· Oct 4, 2017, 17:46 UTC · re: Jeff King · lore

Re: disable interactive prompting

Thanks for pointing out the option. 

I tried "git help push" and searched for "prompt", "interactive", "credentials"...

I don't think I would have figured to try
 "git help git" from "git help" even after reading it carefully.
I'd suggest adding a hint in "git help".
I also don't seem have the GIT_TERMINAL_PROMPT in "git version 1.8.3.1" but I can fix this.
Thanks,

Ernesto Jeff King <peff@peff.net> writes:

Show 33 quoted lines
> On Wed, Oct 04, 2017 at 09:10:48AM -0700, Ernesto Alfonso wrote:
>
>> Waiting for git-push synchronously slows me down, so I have a bash
>> alias/function to do this in the background. But when my origin is https, I
>> get an undesired interactive prompt. I've tried to disable by
>> redirecting stdin:
>> 
>> git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null
>> 
>> but I still get an interactive prompt.
>> 
>> Is there a way to either
>> 
>> 1. disable interactive prompting
>> 2. programmatically determine whether a git command (or at least a git
>> push) would interactively prompt
>
> I assume the prompt is for credentials, since that's generally the only
> thing git-push will prompt for.
>
> Try:
>
>   $ git help git | sed -ne '/PROMPT/,/^$/p'
>          GIT_TERMINAL_PROMPT
>            If this environment variable is set to 0, git will not prompt on
>            the terminal (e.g., when asking for HTTP authentication).
>
> Of course that just stops the prompting. If Git needs a credential and
> you don't provide it, then the push will fail.
>
> For advice on that that, try "git help credentials".
>
> -Peff

← back to recent threads