git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/3] maintenance: configure credentials to be silent

From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
Date
Sep 20, 2024, 00:00 UTC
Message-ID
<pull.1798.git.1726790423.gitgitgadget@gmail.com>

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
Next: Derrick Stolee via GitGitGadget
Message 1 of 8 in “maintenance: configure credentials to be silent”
  1. 0/3 maintenance: configure credentials to be silentDerrick Stolee via GitGitGadget, Sep 20, 2024
  2. 1/3 credential: add new interactive config optionDerrick Stolee via GitGitGadget, Sep 20, 2024
  3. Junio C HamanoSep 20, 2024
  4. 2/3 maintenance: add custom config to background jobsDerrick Stolee via GitGitGadget, Sep 20, 2024
  5. 3/3 scalar: configure maintenance during 'reconfigure'Derrick Stolee via GitGitGadget, Sep 20, 2024
  6. Junio C HamanoSep 20, 2024
  7. Derrick StoleeSep 23, 2024
  8. Junio C HamanoSep 23, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.