|
10 | 10 | import math |
11 | 11 | import hashlib |
12 | 12 | import copy |
| 13 | +import platform |
13 | 14 | from datetime import datetime, timezone |
14 | 15 | import concurrent.futures |
15 | 16 |
|
| 17 | +from pip._vendor import distro |
| 18 | + |
16 | 19 | from .utils import save_to_file, generate_checksum, move_file, DateTimeEncoder, int_version, find |
17 | 20 |
|
18 | 21 | this_dir = os.path.dirname(os.path.realpath(__file__)) |
@@ -535,12 +538,13 @@ def decode_token_data(token): |
535 | 538 |
|
536 | 539 |
|
537 | 540 | class MerginClient: |
538 | | - def __init__(self, url, auth_token=None, login=None, password=None): |
| 541 | + def __init__(self, url, auth_token=None, login=None, password=None, plugin_version=None): |
539 | 542 | self.url = url |
540 | 543 |
|
541 | 544 | self._auth_params = None |
542 | 545 | self._auth_session = None |
543 | 546 | self._user_info = None |
| 547 | + self.client_version = plugin_version if plugin_version is not None else "Python-client/--" |
544 | 548 | if auth_token: |
545 | 549 | token_data = decode_token_data(auth_token) |
546 | 550 | self._auth_session = { |
@@ -568,6 +572,14 @@ def _do_request(self, request): |
568 | 572 |
|
569 | 573 | if self._auth_session: |
570 | 574 | request.add_header("Authorization", self._auth_session["token"]) |
| 575 | + system_version = "Unknown" |
| 576 | + if platform.system() == "Linux": |
| 577 | + system_version = distro.linux_distribution()[0] |
| 578 | + elif platform.system() == "Windows": |
| 579 | + system_version = platform.win32_ver()[0] |
| 580 | + elif platform.system() == "Mac": |
| 581 | + system_version = platform.mac_ver()[0] |
| 582 | + request.add_header("User-Agent", f"{self.client_version} ({platform.system()}/{system_version})") |
571 | 583 | try: |
572 | 584 | return self.opener.open(request) |
573 | 585 | except urllib.error.HTTPError as e: |
|
0 commit comments