|
|
|
@@ -2,6 +2,7 @@ import logging |
|
|
|
import uuid |
|
|
|
from enum import StrEnum |
|
|
|
from typing import Optional, cast |
|
|
|
from urllib.parse import urlparse |
|
|
|
from uuid import uuid4 |
|
|
|
|
|
|
|
import yaml # type: ignore |
|
|
|
@@ -113,8 +114,12 @@ class AppDslService: |
|
|
|
) |
|
|
|
try: |
|
|
|
max_size = 10 * 1024 * 1024 # 10MB |
|
|
|
# tricky way to handle url from github to github raw url |
|
|
|
if yaml_url.startswith("https://github.com") and yaml_url.endswith((".yml", ".yaml")): |
|
|
|
parsed_url = urlparse(yaml_url) |
|
|
|
if ( |
|
|
|
parsed_url.scheme == "https" |
|
|
|
and parsed_url.netloc == "github.com" |
|
|
|
and parsed_url.path.endswith((".yml", ".yaml")) |
|
|
|
): |
|
|
|
yaml_url = yaml_url.replace("https://github.com", "https://raw.githubusercontent.com") |
|
|
|
yaml_url = yaml_url.replace("/blob/", "/") |
|
|
|
response = ssrf_proxy.get(yaml_url.strip(), follow_redirects=True, timeout=(10, 10)) |