Add option REPO_IGNORE_SSH_INFO to ignore ssh_info

This is required for setups, where Gerrit access using ssh is only available
for some networks.
For network without ssh access, repo will get ssh_info from Gerrit and
use ssh for communications - which will fail. To support this setup
we need to have an option to ignore the ssh_info provided by Gerrit and
use http(s).

Using git insteadOf as alternative results in the inability to add
reviewers using "repo upload --re=...", since the syntax of adding
reviewers differs for ssh and https. repo is assuming an ssh
connection and uses "git push --receive-pack=...", which will fail
since git silently uses https for push operation. repo must be aware
that https is used so it uses "git push remote ...:refs/for/...%r=..."
for upload.

Change-Id: Idd83baef0fb26ffcc9ac65e204b68d323ce177a1
This commit is contained in:
Timo Lotterbach 2016-10-07 10:52:08 +02:00
parent ffb4b89099
commit eec726c6d8

View File

@ -631,6 +631,9 @@ class Remote(object):
elif u.startswith('sso:'): elif u.startswith('sso:'):
self._review_url = u # Assume it's right self._review_url = u # Assume it's right
REVIEW_CACHE[u] = self._review_url REVIEW_CACHE[u] = self._review_url
elif 'REPO_IGNORE_SSH_INFO' in os.environ:
self._review_url = http_url
REVIEW_CACHE[u] = self._review_url
else: else:
try: try:
info_url = u + 'ssh_info' info_url = u + 'ssh_info'