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.
Files changed (31) hide show
  1. {devs_cli-2.0.3/devs_cli.egg-info → devs_cli-2.0.4}/PKG-INFO +1 -1
  2. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/cli.py +20 -9
  3. {devs_cli-2.0.3 → devs_cli-2.0.4/devs_cli.egg-info}/PKG-INFO +1 -1
  4. {devs_cli-2.0.3 → devs_cli-2.0.4}/pyproject.toml +1 -1
  5. {devs_cli-2.0.3 → devs_cli-2.0.4}/LICENSE +0 -0
  6. {devs_cli-2.0.3 → devs_cli-2.0.4}/README.md +0 -0
  7. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/__init__.py +0 -0
  8. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/config.py +0 -0
  9. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/core/__init__.py +0 -0
  10. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/core/integration.py +0 -0
  11. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/exceptions.py +0 -0
  12. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs/utils/__init__.py +0 -0
  13. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/SOURCES.txt +0 -0
  14. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/dependency_links.txt +0 -0
  15. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/entry_points.txt +0 -0
  16. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/requires.txt +0 -0
  17. {devs_cli-2.0.3 → devs_cli-2.0.4}/devs_cli.egg-info/top_level.txt +0 -0
  18. {devs_cli-2.0.3 → devs_cli-2.0.4}/setup.cfg +0 -0
  19. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli.py +0 -0
  20. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_clean.py +0 -0
  21. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_misc.py +0 -0
  22. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_start.py +0 -0
  23. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_stop.py +0 -0
  24. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_cli_vscode.py +0 -0
  25. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_container_manager.py +0 -0
  26. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_e2e.py +0 -0
  27. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_error_parsing.py +0 -0
  28. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_integration.py +0 -0
  29. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_live_mode.py +0 -0
  30. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_project.py +0 -0
  31. {devs_cli-2.0.3 → devs_cli-2.0.4}/tests/test_workspace_manager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devs-cli
3
- Version: 2.0.3
3
+ Version: 2.0.4
4
4
  Summary: DevContainer Management Tool - Manage multiple named devcontainers for any project
5
5
  Author: Dan Lester
6
6
  License-Expression: MIT
@@ -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
- This is useful for:
811
- - Connecting to containers on remote servers without port forwarding
812
- - Working through firewalls (only outbound connections needed)
813
- - Avoiding the "double-hop" of SSH + container attach
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 # Start tunnel (interactive)
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 status:
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 (interactive)
879
+ # Start the tunnel (background)
869
880
  container_manager.start_tunnel(
870
881
  dev_name=dev_name,
871
882
  workspace_dir=workspace_dir,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devs-cli
3
- Version: 2.0.3
3
+ Version: 2.0.4
4
4
  Summary: DevContainer Management Tool - Manage multiple named devcontainers for any project
5
5
  Author: Dan Lester
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "devs-cli"
7
- version = "2.0.3"
7
+ version = "2.0.4"
8
8
  description = "DevContainer Management Tool - Manage multiple named devcontainers for any project"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
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