utils.studio: disallow redirects, misc API refactoring (#9301)

This commit is contained in:
skshetry
2023-04-04 13:15:08 +05:45
committed by GitHub
parent 071a5b7ba4
commit 8be71be540
2 changed files with 10 additions and 7 deletions
+9 -7
View File
@@ -15,21 +15,23 @@ STUDIO_URL = "https://studio.iterative.ai"
def post(
endpoint: str,
url: str,
token: str,
data: Dict[str, Any],
url: Optional[str] = STUDIO_URL,
base_url: Optional[str] = STUDIO_URL,
max_retries: int = 3,
timeout: int = 5,
) -> "Response":
endpoint = urljoin(url or STUDIO_URL, endpoint)
url = urljoin(base_url or STUDIO_URL, url)
session = requests.Session()
session.mount(endpoint, HTTPAdapter(max_retries=max_retries))
session.mount(url, HTTPAdapter(max_retries=max_retries))
logger.trace("Sending %s to %s", data, endpoint) # type: ignore[attr-defined]
logger.trace("Sending %s to %s", data, url) # type: ignore[attr-defined]
headers = {"Authorization": f"token {token}"}
r = session.post(endpoint, json=data, headers=headers, timeout=timeout)
r = session.post(
url, json=data, headers=headers, timeout=timeout, allow_redirects=False
)
r.raise_for_status()
return r
@@ -55,7 +57,7 @@ def notify_refs(
data = {"repo_url": repo_url, "client": "dvc", "refs": refs}
try:
r = post("/webhook/dvc", token, data, url=studio_url)
r = post("/webhook/dvc", token, data, base_url=studio_url)
except requests.RequestException as e:
logger.trace("", exc_info=True) # type: ignore[attr-defined]
+1
View File
@@ -41,4 +41,5 @@ def test_notify_refs(mocker, status_code, side_effect):
},
headers={"Authorization": "token TOKEN"},
timeout=5,
allow_redirects=False,
)