Răsfoiți Sursa

Github Codespaces Support 🪐 (#2125)

Masen Furer 1 an în urmă
părinte
comite
e6b02555f4
2 a modificat fișierele cu 26 adăugiri și 0 ștergeri
  1. 14 0
      .devcontainer/devcontainer.json
  2. 12 0
      reflex/config.py

+ 14 - 0
.devcontainer/devcontainer.json

@@ -0,0 +1,14 @@
+{
+	"image": "mcr.microsoft.com/devcontainers/python:1-3.11-bookworm",
+	"postCreateCommand": "/bin/bash -c 'python -m pip install poetry && python -m poetry install & git clone https://github.com/reflex-dev/reflex-examples; wait'",
+	"forwardPorts": [3000, 8000],
+	"portsAttributes": {
+		"3000": {
+			"label": "Frontend",
+			"onAutoForward": "notify"
+		},
+		"8000": {
+			"label": "Backend"
+		}
+	}
+}

+ 12 - 0
reflex/config.py

@@ -314,6 +314,18 @@ class Config(Base):
         ):
         ):
             self.deploy_url = f"http://localhost:{kwargs['frontend_port']}"
             self.deploy_url = f"http://localhost:{kwargs['frontend_port']}"
 
 
+        # If running in Github Codespaces, override API_URL
+        codespace_name = os.getenv("CODESPACE_NAME")
+        if "api_url" not in self._non_default_attributes and codespace_name:
+            GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN = os.getenv(
+                "GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN"
+            )
+            if codespace_name:
+                self.api_url = (
+                    f"https://{codespace_name}-{kwargs.get('backend_port', self.backend_port)}"
+                    f".{GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}"
+                )
+
     def _set_persistent(self, **kwargs):
     def _set_persistent(self, **kwargs):
         """Set values in this config and in the environment so they persist into subprocess.
         """Set values in this config and in the environment so they persist into subprocess.