devs-webhook 3.4.0__tar.gz → 4.0.0__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 (53) hide show
  1. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/PKG-INFO +1 -1
  2. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/claude_dispatcher.py +20 -7
  3. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook.egg-info/PKG-INFO +1 -1
  4. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/pyproject.toml +1 -1
  5. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/LICENSE +0 -0
  6. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/README.md +0 -0
  7. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/__init__.py +0 -0
  8. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/app.py +0 -0
  9. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/cli/__init__.py +0 -0
  10. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/cli/worker.py +0 -0
  11. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/config.py +0 -0
  12. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/__init__.py +0 -0
  13. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/base_dispatcher.py +0 -0
  14. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/container_pool.py +0 -0
  15. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/deduplication.py +0 -0
  16. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/repository_manager.py +0 -0
  17. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/task_processor.py +0 -0
  18. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/test_dispatcher.py +0 -0
  19. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/webhook_config.py +0 -0
  20. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/core/webhook_handler.py +0 -0
  21. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/github/__init__.py +0 -0
  22. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/github/app_auth.py +0 -0
  23. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/github/client.py +0 -0
  24. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/github/models.py +0 -0
  25. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/github/parser.py +0 -0
  26. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/main_cli.py +0 -0
  27. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/sources/__init__.py +0 -0
  28. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/sources/base.py +0 -0
  29. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/sources/sqs_source.py +0 -0
  30. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/sources/webhook_source.py +0 -0
  31. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/utils/__init__.py +0 -0
  32. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/utils/async_utils.py +0 -0
  33. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/utils/container_logs.py +0 -0
  34. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/utils/github.py +0 -0
  35. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/utils/logging.py +0 -0
  36. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/utils/s3_artifacts.py +0 -0
  37. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook/utils/serialization.py +0 -0
  38. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook.egg-info/SOURCES.txt +0 -0
  39. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook.egg-info/dependency_links.txt +0 -0
  40. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook.egg-info/entry_points.txt +0 -0
  41. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook.egg-info/requires.txt +0 -0
  42. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/devs_webhook.egg-info/top_level.txt +0 -0
  43. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/setup.cfg +0 -0
  44. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_allowlist.py +0 -0
  45. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_authentication.py +0 -0
  46. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_authorized_users.py +0 -0
  47. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_ci_container_pool.py +0 -0
  48. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_cleanup_mode.py +0 -0
  49. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_container_logs.py +0 -0
  50. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_single_queue.py +0 -0
  51. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_sqs_burst.py +0 -0
  52. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_stop_container_after_task.py +0 -0
  53. {devs_webhook-3.4.0 → devs_webhook-4.0.0}/tests/test_webhook_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devs-webhook
3
- Version: 3.4.0
3
+ Version: 4.0.0
4
4
  Summary: GitHub webhook handler for automated devcontainer operations with Claude Code
5
5
  Author: Dan Lester
6
6
  License-Expression: MIT
@@ -176,8 +176,25 @@ class ClaudeDispatcher(BaseDispatcher):
176
176
  logger.info("Created new workspace",
177
177
  container=dev_name,
178
178
  workspace_dir=str(workspace_dir))
179
-
180
- # 3. Build Claude prompt
179
+
180
+ # 3. Ensure container is running with environment variables from DEVS.yml.
181
+ # check_rebuild defaults to True so the image is rebuilt when devcontainer
182
+ # files change. Safe here because the per-devname queue is serial — a rebuild
183
+ # only happens between tasks, never mid-task.
184
+ extra_env = None
185
+ if devs_options:
186
+ extra_env = devs_options.get_env_vars(dev_name)
187
+
188
+ if not container_manager.ensure_container_running(
189
+ dev_name=dev_name,
190
+ workspace_dir=workspace_dir,
191
+ force_rebuild=False,
192
+ debug=self.config.dev_mode,
193
+ extra_env=extra_env,
194
+ ):
195
+ return False, "", f"Failed to start container for {dev_name}", 1
196
+
197
+ # 4. Build Claude prompt
181
198
  workspace_name = project.get_workspace_name(dev_name)
182
199
  workspace_path = f"/workspaces/{workspace_name}"
183
200
  repo_name = event.repository.full_name
@@ -277,14 +294,10 @@ Always remember to PUSH your work to origin!
277
294
  prompt_length=len(prompt),
278
295
  event_type="PR" if is_pr else "Issue")
279
296
 
280
- # 4. Execute Claude (like CLI pattern) with environment variables from DEVS.yml
297
+ # 5. Execute Claude (like CLI pattern) with environment variables from DEVS.yml
281
298
  logger.info("Executing Claude via ContainerManager (like CLI)",
282
299
  container=dev_name)
283
300
 
284
- extra_env = None
285
- if devs_options:
286
- extra_env = devs_options.get_env_vars(dev_name)
287
-
288
301
  # Start container logging if enabled
289
302
  if container_log:
290
303
  container_log.start(prompt=prompt, workspace_dir=str(workspace_dir))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devs-webhook
3
- Version: 3.4.0
3
+ Version: 4.0.0
4
4
  Summary: GitHub webhook handler for automated devcontainer operations with Claude Code
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-webhook"
7
- version = "3.4.0"
7
+ version = "4.0.0"
8
8
  description = "GitHub webhook handler for automated devcontainer operations with Claude Code"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
File without changes
File without changes
File without changes