mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
git_command: set GIT_HTTP_USER_AGENT on all requests
We've been setting the User-Agent header when making connections from repo itself, but not when running git (as the latter will set up User-Agent itself). Our Gerrit/Git admins say it'll be helpful if we pass through the repo version settings even when running git. We currently set GIT_HTTP_USER_AGENT and not GIT_USER_AGENT as it's unclear if the extended form works over all protocols. We can wait for a user request. Bug: https://crbug.com/gerrit/11144 Change-Id: I21d293f49534058dbc23225152451df26c5b7bef Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/239233 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: David Pursehouse <dpursehouse@collab.net>
This commit is contained in:
parent
72ab852ca5
commit
2f0951b216
@ -134,6 +134,7 @@ class UserAgent(object):
|
|||||||
|
|
||||||
_os = None
|
_os = None
|
||||||
_repo_ua = None
|
_repo_ua = None
|
||||||
|
_git_ua = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def os(self):
|
def os(self):
|
||||||
@ -165,6 +166,17 @@ class UserAgent(object):
|
|||||||
|
|
||||||
return self._repo_ua
|
return self._repo_ua
|
||||||
|
|
||||||
|
@property
|
||||||
|
def git(self):
|
||||||
|
"""The UA when running git."""
|
||||||
|
if self._git_ua is None:
|
||||||
|
self._git_ua = 'git/%s (%s) git-repo/%s' % (
|
||||||
|
git.version_tuple().full,
|
||||||
|
self.os,
|
||||||
|
RepoSourceVersion())
|
||||||
|
|
||||||
|
return self._git_ua
|
||||||
|
|
||||||
user_agent = UserAgent()
|
user_agent = UserAgent()
|
||||||
|
|
||||||
def git_require(min_version, fail=False, msg=''):
|
def git_require(min_version, fail=False, msg=''):
|
||||||
@ -214,6 +226,7 @@ class GitCommand(object):
|
|||||||
if 'GIT_ALLOW_PROTOCOL' not in env:
|
if 'GIT_ALLOW_PROTOCOL' not in env:
|
||||||
_setenv(env, 'GIT_ALLOW_PROTOCOL',
|
_setenv(env, 'GIT_ALLOW_PROTOCOL',
|
||||||
'file:git:http:https:ssh:persistent-http:persistent-https:sso:rpc')
|
'file:git:http:https:ssh:persistent-http:persistent-https:sso:rpc')
|
||||||
|
_setenv(env, 'GIT_HTTP_USER_AGENT', user_agent.git)
|
||||||
|
|
||||||
if project:
|
if project:
|
||||||
if not cwd:
|
if not cwd:
|
||||||
|
@ -68,3 +68,11 @@ class UserAgentUnitTest(unittest.TestCase):
|
|||||||
# the general form.
|
# the general form.
|
||||||
m = re.match(r'^git-repo/[^ ]+ ([^ ]+) git/[^ ]+ Python/[0-9.]+', ua)
|
m = re.match(r'^git-repo/[^ ]+ ([^ ]+) git/[^ ]+ Python/[0-9.]+', ua)
|
||||||
self.assertIsNotNone(m)
|
self.assertIsNotNone(m)
|
||||||
|
|
||||||
|
def test_smoke_git(self):
|
||||||
|
"""Make sure git UA returns something useful."""
|
||||||
|
ua = git_command.user_agent.git
|
||||||
|
# We can't dive too deep because of OS/tool differences, but we can check
|
||||||
|
# the general form.
|
||||||
|
m = re.match(r'^git/[^ ]+ ([^ ]+) git-repo/[^ ]+', ua)
|
||||||
|
self.assertIsNotNone(m)
|
||||||
|
Loading…
Reference in New Issue
Block a user