git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: gitster@pobox.com, liuzhongbo.gg@gmail.com,
	Johannes.Schindelin@gmx.de, Derrick Stolee <stolee@gmail.com>
Subject: [PATCH 0/3] maintenance: configure credentials to be silent
Date: Fri, 20 Sep 2024 00:00:20 +0000	[thread overview]
Message-ID: <pull.1798.git.1726790423.gitgitgadget@gmail.com> (raw)

When background maintenance attempts to perform a prefetch to remote
servers, this may trigger authentication requirements. If the credentials
are expired, then the credential helper may need user input in order to get
refreshed credentials. It is not a good experience for users to get
credential pop-ups when not directly interacting with Git.

Add a new configuration value, 'credential.interactive', to specify to the
credential helper that it should not prompt for user interaction. This
option has been respected by Git Credential Manager since 2020 [1], so this
is now presenting it as an official Git config value.

These changes were first merged into the microsoft/git fork in August 2023
[2] but were not upstreamed immediately. The change has been a positive one
for users of that fork, as they no longer get pop-ups and they also are not
getting maintenance.lock file blocks when the prefetch task waits for
credentials. This has become even more important recently as credential
lifetimes have been restricted significantly, leading to a higher likelihood
that this will happen during a background prefetch.

I was reminded of these changes when liuzhongbo started a discussion [3]
about maintenance.lock files and requesting that they are removed if they
are stale. This does not address that issue directly, but is an important
way to reduce the lifetime of maintenance.lock files when blocked on
credential prompts.

[1] https://github.com/git-ecosystem/git-credential-manager/pull/91

[2] https://github.com/microsoft/git/pull/598

[3]
https://lore.kernel.org/git/cce1d054-911e-407e-bc26-1c0bac4dd8e4@gmail.com/T/#t

Thanks, -Stolee

Derrick Stolee (3):
  credential: add new interactive config option
  maintenance: add custom config to background jobs
  scalar: configure maintenance during 'reconfigure'

 Documentation/config/credential.txt |  8 +++++
 builtin/gc.c                        | 53 +++++++++++++++++++++++++----
 credential.c                        | 30 ++++++++++++++--
 scalar.c                            |  3 ++
 t/t5551-http-fetch-smart.sh         | 22 ++++++++++++
 t/t7900-maintenance.sh              |  3 ++
 t/t9210-scalar.sh                   |  7 ++--
 7 files changed, 114 insertions(+), 12 deletions(-)


base-commit: 6531f31ef3bead57a3255fa08efa6e7553c5a9a7
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1798%2Fderrickstolee%2Fbackground-quiet-credentials-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1798/derrickstolee/background-quiet-credentials-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1798
-- 
gitgitgadget

             reply	other threads:[~2024-09-20  0:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-20  0:00 Derrick Stolee via GitGitGadget [this message]
2024-09-20  0:00 ` [PATCH 1/3] credential: add new interactive config option Derrick Stolee via GitGitGadget
2024-09-20 22:07   ` Junio C Hamano
2024-09-20  0:00 ` [PATCH 2/3] maintenance: add custom config to background jobs Derrick Stolee via GitGitGadget
2024-09-20  0:00 ` [PATCH 3/3] scalar: configure maintenance during 'reconfigure' Derrick Stolee via GitGitGadget
2024-09-20 21:56 ` [PATCH 0/3] maintenance: configure credentials to be silent Junio C Hamano
2024-09-23  1:36   ` Derrick Stolee
2024-09-23 16:24     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=pull.1798.git.1726790423.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=liuzhongbo.gg@gmail.com \
    --cc=stolee@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).