devs-common 4.0.2__tar.gz → 4.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 (46) hide show
  1. {devs_common-4.0.2 → devs_common-4.0.4}/PKG-INFO +1 -1
  2. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/devs_config.py +25 -5
  3. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/devcontainer.json +2 -2
  4. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/extensions/devs-bridge-drop.vsix +0 -0
  5. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/scripts/setup-workspace.sh +3 -4
  6. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common.egg-info/PKG-INFO +1 -1
  7. {devs_common-4.0.2 → devs_common-4.0.4}/pyproject.toml +1 -1
  8. {devs_common-4.0.2 → devs_common-4.0.4}/LICENSE +0 -0
  9. {devs_common-4.0.2 → devs_common-4.0.4}/README.md +0 -0
  10. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/__init__.py +0 -0
  11. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/config.py +0 -0
  12. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/core/__init__.py +0 -0
  13. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/core/container.py +0 -0
  14. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/core/project.py +0 -0
  15. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/core/workspace.py +0 -0
  16. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/exceptions.py +0 -0
  17. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/Dockerfile +0 -0
  18. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/extensions/README.md +0 -0
  19. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/extensions/install.sh +0 -0
  20. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/scripts/copy-ssh.sh +0 -0
  21. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/scripts/install-bridge-drop.sh +0 -0
  22. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/scripts/post-create-wrapper.sh +0 -0
  23. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/scripts/python-venv-integration.sh +0 -0
  24. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/scripts/screenshot-webapp.sh +0 -0
  25. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/scripts/start-tunnel.sh +0 -0
  26. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/scripts/tunnel-status.sh +0 -0
  27. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/scripts/webapp-screenshot.py +0 -0
  28. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/sudo-scripts/init-firewall.sh +0 -0
  29. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/sudo-scripts/setup-devs-env.sh +0 -0
  30. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/sudo-scripts/setup-vscode-cache.sh +0 -0
  31. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/sudo-scripts/start-services.sh +0 -0
  32. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/templates/vscode-settings-reference.md +0 -0
  33. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/utils/__init__.py +0 -0
  34. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/utils/config_hash.py +0 -0
  35. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/utils/console.py +0 -0
  36. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/utils/devcontainer.py +0 -0
  37. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/utils/devcontainer_template.py +0 -0
  38. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/utils/docker_client.py +0 -0
  39. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/utils/file_utils.py +0 -0
  40. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/utils/git_utils.py +0 -0
  41. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common/utils/repo_cache.py +0 -0
  42. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common.egg-info/SOURCES.txt +0 -0
  43. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common.egg-info/dependency_links.txt +0 -0
  44. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common.egg-info/requires.txt +0 -0
  45. {devs_common-4.0.2 → devs_common-4.0.4}/devs_common.egg-info/top_level.txt +0 -0
  46. {devs_common-4.0.2 → devs_common-4.0.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devs-common
3
- Version: 4.0.2
3
+ Version: 4.0.4
4
4
  Summary: Shared utilities for devs package ecosystem
5
5
  Author: Dan Lester
6
6
  License-Expression: MIT
@@ -4,6 +4,7 @@ This module provides shared configuration handling for DEVS.yml files
4
4
  across the CLI and webhook packages.
5
5
  """
6
6
 
7
+ import os
7
8
  from pathlib import Path
8
9
  from typing import Dict, Optional, List, Any
9
10
  from pydantic import BaseModel, Field
@@ -25,6 +26,7 @@ class DevsOptions(BaseModel):
25
26
  ci_branches: List[str] = ["main", "master"] # Branches to run CI on for push events
26
27
  draft_prs: bool = False # When enabled, instruct Claude to create/maintain PRs as drafts
27
28
  env_vars: Dict[str, Dict[str, str]] = Field(default_factory=dict) # Environment variables
29
+ ssh_host: Optional[str] = None # SSH hostname for remote container access (e.g. Tailscale MagicDNS name)
28
30
 
29
31
  def get_env_vars(self, container_name: Optional[str] = None) -> Dict[str, str]:
30
32
  """Get environment variables for a specific container or defaults.
@@ -146,19 +148,37 @@ class DevsConfigLoader:
146
148
  return DevsOptions(**merged_config)
147
149
 
148
150
  @staticmethod
149
- def load_env_vars(dev_name: str, project_name: Optional[str] = None,
151
+ def load_env_vars(dev_name: str, project_name: Optional[str] = None,
150
152
  repo_path: Optional[Path] = None) -> Dict[str, str]:
151
153
  """Load only environment variables for a specific dev environment.
152
-
154
+
153
155
  This is a convenience method for CLI usage.
154
-
156
+
155
157
  Args:
156
158
  dev_name: Development environment/container name
157
159
  project_name: Project name in org-repo format
158
160
  repo_path: Path to repository (defaults to cwd if not provided)
159
-
161
+
160
162
  Returns:
161
163
  Dictionary of environment variables with all overrides applied
162
164
  """
163
165
  options = DevsConfigLoader.load(project_name, repo_path)
164
- return options.get_env_vars(dev_name)
166
+ return options.get_env_vars(dev_name)
167
+
168
+ @staticmethod
169
+ def load_ssh_host(project_name: Optional[str] = None,
170
+ repo_path: Optional[Path] = None) -> Optional[str]:
171
+ """Load the configured SSH host for remote container access.
172
+
173
+ Reads from DEVS.yml layers (repo → user default → user project-specific),
174
+ then falls back to the DEVS_SSH_HOST environment variable.
175
+
176
+ Args:
177
+ project_name: Project name in org-repo format
178
+ repo_path: Path to repository (defaults to cwd if not provided)
179
+
180
+ Returns:
181
+ SSH hostname string, or None if not configured
182
+ """
183
+ options = DevsConfigLoader.load(project_name, repo_path)
184
+ return options.ssh_host or os.environ.get("DEVS_SSH_HOST") or None
@@ -21,7 +21,8 @@
21
21
  "ms-python.vscode-pylance",
22
22
  "ms-python.black-formatter",
23
23
  "ms-python.isort",
24
- "Anthropic.claude-code"
24
+ "Anthropic.claude-code",
25
+ "ideonate.devs-bridge-drop"
25
26
  ],
26
27
  "settings": {
27
28
  "editor.formatOnSave": false,
@@ -99,7 +100,6 @@
99
100
  },
100
101
  "workspaceFolder": "/workspaces/${localEnv:WORKSPACE_FOLDER_NAME}",
101
102
  "postCreateCommand": "/usr/local/bin/post-create-wrapper.sh",
102
- "postAttachCommand": "/usr/local/bin/install-bridge-drop.sh",
103
103
  "forwardPorts": [],
104
104
  "portsAttributes": {
105
105
  "3306": {
@@ -280,10 +280,9 @@ else
280
280
  echo "No package.json found in root directory"
281
281
  fi
282
282
 
283
- # Note: devs-bridge-drop is installed by postAttachCommand (install-bridge-drop.sh)
284
- # rather than here, because the 'code' CLI baked into /usr/local/bin (used for
285
- # tunnels) doesn't write to the same extensions dir VS Code Server reads from.
286
- # By postAttachCommand time, VS Code Server's own 'code' shim is on PATH.
283
+ # Note: devs-bridge-drop is installed declaratively via customizations.vscode.extensions
284
+ # in devcontainer.json (Marketplace ID: ideonate.devs-bridge-drop). The legacy
285
+ # install-bridge-drop.sh script remains in this directory as an offline fallback.
287
286
 
288
287
  echo "Workspace setup complete!"
289
288
  echo ""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devs-common
3
- Version: 4.0.2
3
+ Version: 4.0.4
4
4
  Summary: Shared utilities for devs package ecosystem
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-common"
7
- version = "4.0.2"
7
+ version = "4.0.4"
8
8
  description = "Shared utilities for devs package ecosystem"
9
9
  authors = [
10
10
  {name = "Dan Lester"},
File without changes
File without changes
File without changes