threads / discuss / 63582

Clarification on GPG preference update prompts during Git test suite execution

Subject: Clarification on GPG preference update prompts during Git test suite execution

## tl;dr

3 messages between Jun 4, 2025 and Jun 4, 2025.

replies: 2people: 3as markdown or json

Haritha D· Jun 4, 2025, 09:39 UTC · lore
Hi Team,
I wanted help regarding the below scenario:
While running the test suite for the latest Git version, I observed that some test cases—particularly t5573-pull-verify-signatures.sh—prompt for input with the message:
Really update the preferences? (y/N)
I attempted to work around this by piping yes n, but the prompt still appears, causing the tests to wait for user input.
I noticed that the ci/run-build-and-tests.sh script in the Git repo does not seem to explicitly handle this scenario (e.g., no --batch, --yes, or other flags related to GPG). I’m curious—how does Git's CI/CD pipeline avoid or suppress these GPG interactive prompts during test execution?
Any insights on how this is managed or best practices to handle such cases in automated environments would be greatly appreciated.

Thanks & regards Haritha

Chris Torek· Jun 4, 2025, 11:13 UTC · re: Haritha D · lore

Re: Clarification on GPG preference update prompts during Git test suite execution

On Wed, Jun 4, 2025 at 2:39 AM Haritha D <Harithamma.D@ibm.com> wrote:
> I noticed that the ci/run-build-and-tests.sh script in the Git repo does not seem to explicitly handle this scenario (e.g., no --batch, --yes, or other flags related to GPG). I’m curious—how does Git's CI/CD pipeline avoid or suppress these GPG interactive prompts during test execution?

GPG does not go through Git. GPG uses the "grab hold of the user who's watching this and ask a question" interface provided by the operating system. CI systems disable this interface (or do their best to attempt to do so) since there is no user watching.

Since Git is not involved here, Git has no control over this. You need to deal with this at the GPG level (or use the same tricks that CI systems use, but those are considerably more complex, and OS-dependent).

Chris
Junio C Hamano· Jun 4, 2025, 16:20 UTC · re: Chris Torek · lore

Re: Clarification on GPG preference update prompts during Git test suite execution

Chris Torek <chris.torek@gmail.com> writes:
Show 12 quoted lines
> On Wed, Jun 4, 2025 at 2:39 AM Haritha D <Harithamma.D@ibm.com> wrote:
>> I noticed that the ci/run-build-and-tests.sh script in the Git repo does not seem to explicitly handle this scenario (e.g., no --batch, --yes, or other flags related to GPG). I’m curious—how does Git's CI/CD pipeline avoid or suppress these GPG interactive prompts during test execution?
>
> GPG does not go through Git. GPG uses the "grab hold of the user who's
> watching this and ask a question" interface provided by the operating
> system. CI systems disable this interface (or do their best to attempt
> to do so) since there is no user watching.
>
> Since Git is not involved here, Git has no control over this. You need
> to deal with this at the GPG level (or use the same tricks that CI
> systems use, but those are considerably more complex, and
> OS-dependent).

We do redirect our stdin to read from /dev/null but that is the extent we attempt to go non-interactive while running the tests, which, as you said, is insufficient to defeat applications opening up /dev/tty or going GUI.

← back to recent threads