devs-cli 2.0.3__tar.gz → 2.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {devs_cli-2.0.3/devs_cli.egg-info → devs_cli-2.0.4}/PKG-INFO +1 -1
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/cli.py +20 -9
- {devs_cli-2.0.3 → devs_cli-2.0.4/devs_cli.egg-info}/PKG-INFO +1 -1
- {devs_cli-2.0.3 → devs_cli-2.0.4}/pyproject.toml +1 -1
- {devs_cli-2.0.3 → devs_cli-2.0.4}/LICENSE +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/README.md +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/__init__.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/config.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/core/__init__.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/core/integration.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/exceptions.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/utils/__init__.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/SOURCES.txt +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/dependency_links.txt +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/entry_points.txt +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/requires.txt +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/top_level.txt +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/setup.cfg +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_clean.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_misc.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_start.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_stop.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_vscode.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_container_manager.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_e2e.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_error_parsing.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_integration.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_live_mode.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_project.py +0 -0
- {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_workspace_manager.py +0 -0
|
@@ -795,29 +795,30 @@ def runtests(dev_name: str, reset_workspace: bool, live: bool, env: tuple, debug
|
|
|
795
795
|
|
|
796
796
|
@cli.command()
|
|
797
797
|
@click.argument('dev_name')
|
|
798
|
+
@click.option('--auth', is_flag=True, help='Set up tunnel authentication (interactive, one-time setup)')
|
|
798
799
|
@click.option('--status', is_flag=True, help='Check tunnel status instead of starting')
|
|
799
800
|
@click.option('--kill', 'kill_tunnel', is_flag=True, help='Kill running tunnel')
|
|
800
801
|
@click.option('--live', is_flag=True, help='Start container with current directory mounted as workspace')
|
|
801
802
|
@click.option('--env', multiple=True, help='Environment variables to pass to container (format: VAR=value)')
|
|
802
803
|
@debug_option
|
|
803
|
-
def tunnel(dev_name: str, status: bool, kill_tunnel: bool, live: bool, env: tuple, debug: bool) -> None:
|
|
804
|
+
def tunnel(dev_name: str, auth: bool, status: bool, kill_tunnel: bool, live: bool, env: tuple, debug: bool) -> None:
|
|
804
805
|
"""Start a VS Code tunnel in devcontainer.
|
|
805
806
|
|
|
806
807
|
VS Code tunnels allow you to connect VS Code directly to the container
|
|
807
808
|
without SSH - the container initiates an outbound connection to Microsoft's
|
|
808
809
|
tunnel service, and your local VS Code connects through that.
|
|
809
810
|
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
811
|
+
First-time setup requires authentication:
|
|
812
|
+
devs tunnel <name> --auth
|
|
813
|
+
|
|
814
|
+
After that, tunnels run in the background automatically.
|
|
814
815
|
|
|
815
816
|
DEV_NAME: Development environment name
|
|
816
817
|
|
|
817
|
-
Example: devs tunnel sally
|
|
818
|
+
Example: devs tunnel sally --auth # One-time auth setup
|
|
819
|
+
Example: devs tunnel sally # Start tunnel (background)
|
|
818
820
|
Example: devs tunnel sally --status # Check tunnel status
|
|
819
821
|
Example: devs tunnel sally --kill # Stop running tunnel
|
|
820
|
-
Example: devs tunnel sally --live # Start with current directory mounted
|
|
821
822
|
"""
|
|
822
823
|
check_dependencies()
|
|
823
824
|
project = get_project()
|
|
@@ -837,7 +838,17 @@ def tunnel(dev_name: str, status: bool, kill_tunnel: bool, live: bool, env: tupl
|
|
|
837
838
|
# Ensure workspace exists (handles live mode internally)
|
|
838
839
|
workspace_dir = workspace_manager.create_workspace(dev_name, live=live)
|
|
839
840
|
|
|
840
|
-
if
|
|
841
|
+
if auth:
|
|
842
|
+
# Interactive authentication
|
|
843
|
+
container_manager.tunnel_auth(
|
|
844
|
+
dev_name=dev_name,
|
|
845
|
+
workspace_dir=workspace_dir,
|
|
846
|
+
debug=debug,
|
|
847
|
+
live=live,
|
|
848
|
+
extra_env=extra_env
|
|
849
|
+
)
|
|
850
|
+
|
|
851
|
+
elif status:
|
|
841
852
|
# Check tunnel status
|
|
842
853
|
is_running, status_msg = container_manager.get_tunnel_status(
|
|
843
854
|
dev_name=dev_name,
|
|
@@ -865,7 +876,7 @@ def tunnel(dev_name: str, status: bool, kill_tunnel: bool, live: bool, env: tupl
|
|
|
865
876
|
)
|
|
866
877
|
|
|
867
878
|
else:
|
|
868
|
-
# Start the tunnel (
|
|
879
|
+
# Start the tunnel (background)
|
|
869
880
|
container_manager.start_tunnel(
|
|
870
881
|
dev_name=dev_name,
|
|
871
882
|
workspace_dir=workspace_dir,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|