tree 2aa16b047cc9dbc33e063a1d7ce02efe6f54f822
parent ce1bf1f34f653f590aa476b91388fc9c53962775
author Tobias Henkel <tobias.henkel@bmw.de> 1513766179 +0100
committer Tobias Henkel <tobias.henkel@bmw.de> 1518537669 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE+y7hWy8PEmYraO2WA3UN7BWOX6IFAlqDC8cACgkQA3UN7BWO
 X6Ko6Q/+OBAQDe8oVOakfenOGkh4bbtdIWU558dm/N+VKEQENU5Zu81fp8tC6lkQ
 I92Al5oUQa/ecK7qXcYcWGano4wLeyuRZpIuAJbCUT85q+c06Eq5oBWj7/BDW+el
 CiBBoDILQc1TOcOVA8JWij9PTDcVGCuYw3nhiv3LDQWNK9DolnqE91jUbn05Pqoi
 yfyeYno0JKclSNaYMn5edQI8g3rDFN2UiaNMRKVSkgJQ5I31VoYB4T/eHqTdXScV
 I0ktByAb/cmVLjG4YKtMvoangPgVxKLsfwGVmtTDKRYtEEAXmN0uLRKPPgwIuypS
 Nu+c2KlepjhMMzO+A50xd2FAND1PSO+I1DcmZNASc9S0GVSmKoHMOkQ4Rps/w5rh
 WVRezI7QmfrZ85TxTaib3ld+uY56dXdi6kfzA/pRPYvb9np3cMNZtjKbv0oveByf
 m9KcGGqJNtTDN2DLTXYuxmka6nHl83+tub1DyfaJibrx3nG+Q07fVCDV4IIKUmwU
 3fTcq2jgL+8VbD/VgUToEGjhK0R7P0ETABlTZ111Wzv3NlPxjmM018e7gHcBMZlO
 ebfFN8nhQFN6mUjJPaLCj8/FcooyJIqjUZTdIehPdxizAOkv8++Eb49zuJqynzLp
 INk7ft8Y99ry1mx1zsiQMWbrceVoySHBSenhRWG7kpHsL9Rn3zc=
 =af6B
 -----END PGP SIGNATURE-----

Set remote url on every getRepo in merger

In case we run on github with apps we have an access token in the git
url. This access token is only valid for a specific period of
time. Currently the merger caches its repos and never changes the git
url on subsequent merge or cat requests. After timeout the merger then
faces an exception [1].

The fix is to update the remote url on every getRepo call in the
merger. This makes sure that we have a recent access token on every
merge or cat call.

Further the executor has the same problems and gets fixed by this too
as it also uses getRepo from the merger.

[1] Exception:
 2017-12-20 07:00:00,874 ERROR zuul.Merger: Unable to update github/sandbox/sandbox
 Traceback (most recent call last):
   File "/usr/lib/python3.6/site-packages/zuul/merger/merger.py", line 382, in updateRepo
     repo.reset()
   File "/usr/lib/python3.6/site-packages/zuul/merger/merger.py", line 143, in reset
     self.update()
   File "/usr/lib/python3.6/site-packages/zuul/merger/merger.py", line 293, in update
     self._git_fetch(repo, 'origin', tags=True)
   File "/usr/lib/python3.6/site-packages/zuul/merger/merger.py", line 133, in _git_fetch
     **kwargs)
   File "/usr/lib/python3.6/site-packages/git/cmd.py", line 551, in <lambda>
     return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
   File "/usr/lib/python3.6/site-packages/git/cmd.py", line 1010, in _call_process
     return self.execute(call, **exec_kwargs)
   File "/usr/lib/python3.6/site-packages/git/cmd.py", line 821, in execute
     raise GitCommandError(command, status, stderr_value, stdout_value)
 git.exc.GitCommandError: Cmd('git') failed due to: exit code(128)
   cmdline: git fetch --tags origin
   stderr: 'remote: Invalid username or password.
 fatal: Authentication failed for 'https://x-access-token:v1.c8ec09e233b16871b64843adeec5fb048a383fba@github.example.com/sandbox/sandbox/''

Change-Id: If990dc48e6c10c24b6b32db5f5711fc3608bdfe4
