Skip to content

Commit 5affaf9

Browse files
committed
Respect basic auth in import-contest URL.
If specified explicitly in the URL, it will take precedence over what is specified in the `~/.netrc`. Fixes #2390.
1 parent 113c18b commit 5affaf9

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

misc-tools/dj_utils.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import requests.utils
1212
import subprocess
1313
import sys
14+
from urllib.parse import urlparse
1415

1516
_myself = os.path.basename(sys.argv[0])
1617
_default_user_agent = requests.utils.default_user_agent()
@@ -76,12 +77,16 @@ def do_api_request(name: str, method: str = 'GET', jsonData: dict = {}):
7677
else:
7778
global ca_check
7879
url = f'{domjudge_webapp_folder_or_api_url}/{name}'
80+
parsed = urlparse(domjudge_webapp_folder_or_api_url)
81+
auth = None
82+
if parsed.username or parsed.password:
83+
auth = (parsed.username, parsed.password)
7984

8085
try:
8186
if method == 'GET':
82-
response = requests.get(url, headers=headers, verify=ca_check)
87+
response = requests.get(url, headers=headers, verify=ca_check, auth=auth)
8388
elif method == 'PUT':
84-
response = requests.put(url, headers=headers, verify=ca_check, json=jsonData)
89+
response = requests.put(url, headers=headers, verify=ca_check, json=jsonData, auth=auth)
8590
except requests.exceptions.SSLError as e:
8691
ca_check = not confirm(
8792
"Can not verify certificate, ignore certificate check?", False)

0 commit comments

Comments
 (0)