chiark / gitweb /
build: stop git from waiting forever at username/password prompts
authorHans-Christoph Steiner <hans@eds.org>
Thu, 23 Nov 2017 16:08:57 +0000 (17:08 +0100)
committerHans-Christoph Steiner <hans@eds.org>
Thu, 23 Nov 2017 22:31:37 +0000 (23:31 +0100)
commitfdbfb4d1a2b4f97ff0e1b93739fee2f0c5652e63
tree591260074f92d2c6a04173ff787423611c95d6b8
parentc45264b190870e64b686776937a306dcd82ba574
build: stop git from waiting forever at username/password prompts

If a git fetch/clone/submodule URL points to gitlab, github, bitbucket, etc
and that repo does not exist any more, those services will prompt the user
for a username/password so that the service can check if its a private
repo.  Private repos show up the same as non-existent repos.  This employs
two techniques for making sure that git never waits at those prompts.  It
instead should just fail immediately.  The buildserver has been hanging on
these prompts forever, until manually killed.  This change will apply to
updates both on the buildserver host, and the buildserver guest vm.

This uses the "insteadOf" git config option to rewrite URLs to always use
HTTPS and then include a fake username/password so that git will use those
in the prompts and fail immediately.  This trick has been in use on the
verification server for a long while and has been working well.  It has
also been used on jenkins.debian.net in the host.
https://f-droid.org/en/docs/Verification_Server/

It also includes GIT_TERMINAL_PROMPT, which also prevents the bad behavior,
which was added in git 2.3.
https://github.com/blog/1957-git-2-3-has-been-released
fdroidserver/common.py
jenkins-build-all