spaceforge 0.0.7__tar.gz → 0.0.8__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 (57) hide show
  1. {spaceforge-0.0.7 → spaceforge-0.0.8}/PKG-INFO +1 -1
  2. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/enviroment_manager/plugin.py +5 -2
  3. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/enviroment_manager/plugin.yaml +5 -2
  4. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/_version_scm.py +3 -3
  5. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/plugin.py +24 -14
  6. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge.egg-info/PKG-INFO +1 -1
  7. {spaceforge-0.0.7 → spaceforge-0.0.8}/.github/workflows/ci.yml +0 -0
  8. {spaceforge-0.0.7 → spaceforge-0.0.8}/.github/workflows/release.yml +0 -0
  9. {spaceforge-0.0.7 → spaceforge-0.0.8}/.gitignore +0 -0
  10. {spaceforge-0.0.7 → spaceforge-0.0.8}/LICENSE +0 -0
  11. {spaceforge-0.0.7 → spaceforge-0.0.8}/MANIFEST.in +0 -0
  12. {spaceforge-0.0.7 → spaceforge-0.0.8}/README.md +0 -0
  13. {spaceforge-0.0.7 → spaceforge-0.0.8}/go.mod +0 -0
  14. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/enviroment_manager/requirements.txt +0 -0
  15. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/infracost/plugin.py +0 -0
  16. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/infracost/plugin.yaml +0 -0
  17. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/sops/plugin.py +0 -0
  18. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/sops/plugin.yaml +0 -0
  19. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/sops/requirements.txt +0 -0
  20. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/wiz/plugin.py +0 -0
  21. {spaceforge-0.0.7 → spaceforge-0.0.8}/plugins/wiz/plugin.yaml +0 -0
  22. {spaceforge-0.0.7 → spaceforge-0.0.8}/pyproject.toml +0 -0
  23. {spaceforge-0.0.7 → spaceforge-0.0.8}/setup.cfg +0 -0
  24. {spaceforge-0.0.7 → spaceforge-0.0.8}/setup.py +0 -0
  25. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/README.md +0 -0
  26. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/__init__.py +0 -0
  27. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/__main__.py +0 -0
  28. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/_version.py +0 -0
  29. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/cls.py +0 -0
  30. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/conftest.py +0 -0
  31. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/generator.py +0 -0
  32. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/runner.py +0 -0
  33. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/schema.json +0 -0
  34. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/templates/binary_install.sh.j2 +0 -0
  35. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/templates/ensure_spaceforge_and_run.sh.j2 +0 -0
  36. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_cls.py +0 -0
  37. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_generator.py +0 -0
  38. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_generator_binaries.py +0 -0
  39. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_generator_core.py +0 -0
  40. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_generator_hooks.py +0 -0
  41. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_generator_parameters.py +0 -0
  42. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_plugin.py +0 -0
  43. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_plugin_file_operations.py +0 -0
  44. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_plugin_hooks.py +0 -0
  45. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_plugin_inheritance.py +0 -0
  46. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_runner.py +0 -0
  47. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_runner_cli.py +0 -0
  48. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_runner_core.py +0 -0
  49. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge/test_runner_execution.py +0 -0
  50. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge.egg-info/SOURCES.txt +0 -0
  51. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge.egg-info/dependency_links.txt +0 -0
  52. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge.egg-info/entry_points.txt +0 -0
  53. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge.egg-info/not-zip-safe +0 -0
  54. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge.egg-info/requires.txt +0 -0
  55. {spaceforge-0.0.7 → spaceforge-0.0.8}/spaceforge.egg-info/top_level.txt +0 -0
  56. {spaceforge-0.0.7 → spaceforge-0.0.8}/templates.go +0 -0
  57. {spaceforge-0.0.7 → spaceforge-0.0.8}/test.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spaceforge
3
- Version: 0.0.7
3
+ Version: 0.0.8
4
4
  Summary: A Python framework for building Spacelift plugins
5
5
  Home-page: https://github.com/spacelift-io/plugins
6
6
  Author: Spacelift
@@ -149,6 +149,9 @@ resource "spacelift_environment_variable" "__this" {
149
149
  )
150
150
  ]
151
151
 
152
+ def __init__(self):
153
+ super().__init__()
154
+
152
155
  def load_yaml_file(self, file_path):
153
156
  """Load YAML file and return parsed content"""
154
157
  try:
@@ -190,13 +193,13 @@ resource "spacelift_environment_variable" "__this" {
190
193
  query = "{ stack(id: \"" + stack_id + "\") { trackedCommit { hash } } }"
191
194
  response = self.query_api(query)
192
195
  if "errors" in response:
193
- self.logger.error("Error fetching stack tracked commit:", response["errors"])
196
+ self.logger.error(f"Error fetching stack tracked commit: {response['errors']}")
194
197
  continue
195
198
 
196
199
  # Ensure we have a tracked commit
197
200
  try:
198
201
  tracked_commit = response["data"]["stack"]["trackedCommit"]["hash"]
199
- except TypeError:
202
+ except (TypeError, KeyError):
200
203
  tracked_commit = None
201
204
  if tracked_commit is None:
202
205
  self.logger.error(f"Stack {stack_id} has no tracked commit. Skipping.")
@@ -286,6 +286,9 @@ contexts:
286
286
  )
287
287
  ]
288
288
 
289
+ def __init__(self):
290
+ super().__init__()
291
+
289
292
  def load_yaml_file(self, file_path):
290
293
  """Load YAML file and return parsed content"""
291
294
  try:
@@ -327,13 +330,13 @@ contexts:
327
330
  query = "{ stack(id: \"" + stack_id + "\") { trackedCommit { hash } } }"
328
331
  response = self.query_api(query)
329
332
  if "errors" in response:
330
- self.logger.error("Error fetching stack tracked commit:", response["errors"])
333
+ self.logger.error(f"Error fetching stack tracked commit: {response['errors']}")
331
334
  continue
332
335
 
333
336
  # Ensure we have a tracked commit
334
337
  try:
335
338
  tracked_commit = response["data"]["stack"]["trackedCommit"]["hash"]
336
- except TypeError:
339
+ except (TypeError, KeyError):
337
340
  tracked_commit = None
338
341
  if tracked_commit is None:
339
342
  self.logger.error(f"Stack {stack_id} has no tracked commit. Skipping.")
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.0.7'
32
- __version_tuple__ = version_tuple = (0, 0, 7)
31
+ __version__ = version = '0.0.8'
32
+ __version_tuple__ = version_tuple = (0, 0, 8)
33
33
 
34
- __commit_id__ = commit_id = 'g0a9b4ad4a'
34
+ __commit_id__ = commit_id = 'g3b76eed20'
@@ -8,6 +8,7 @@ import logging
8
8
  import os
9
9
  import subprocess
10
10
  import urllib.request
11
+ from urllib.error import HTTPError
11
12
  from abc import ABC
12
13
  from typing import Any, Dict, List, Optional, Tuple
13
14
 
@@ -48,14 +49,14 @@ class SpaceforgePlugin(ABC):
48
49
  if self.spacelift_domain and isinstance(self.spacelift_domain, str):
49
50
  # this must occur after we check if spacelift domain is false
50
51
  # because the domain could be set but not start with https://
51
- if self.spacelift_domain.startswith("https://"):
52
- if self.spacelift_domain.endswith("/"):
53
- self.spacelift_domain = self.spacelift_domain[:-1]
54
- else:
55
- self.logger.warning(
56
- "SPACELIFT_DOMAIN does not start with https://, api calls will fail."
57
- )
58
- self._api_enabled = False
52
+ # if self.spacelift_domain.startswith("https://"):
53
+ # if self.spacelift_domain.endswith("/"):
54
+ # self.spacelift_domain = self.spacelift_domain[:-1]
55
+ # else:
56
+ # self.logger.warning(
57
+ # "SPACELIFT_DOMAIN does not start with https://, api calls will fail."
58
+ # )
59
+ # self._api_enabled = False
59
60
 
60
61
  if self._api_enabled:
61
62
  self._spacelift_markdown_endpoint = self.spacelift_domain.replace(
@@ -204,8 +205,17 @@ class SpaceforgePlugin(ABC):
204
205
  json.dumps(data).encode("utf-8"),
205
206
  headers,
206
207
  )
207
- with urllib.request.urlopen(req) as response:
208
- resp: Dict[str, Any] = json.loads(response.read().decode("utf-8"))
208
+
209
+ try:
210
+ with urllib.request.urlopen(req) as response:
211
+ resp: Dict[str, Any] = json.loads(response.read().decode("utf-8"))
212
+ except urllib.error.HTTPError as e:
213
+ if hasattr(e, 'read'):
214
+ resp = json.loads(e.read().decode('utf-8'))
215
+ else:
216
+ # We should not get here, but if we do re-raise the exception
217
+ self.logger.error(f"HTTP error occurred: ({e.code}) {e.reason} {e.msg}")
218
+ raise e
209
219
 
210
220
  if "errors" in resp:
211
221
  self.logger.error(f"Error: {resp['errors']}")
@@ -287,8 +297,8 @@ class SpaceforgePlugin(ABC):
287
297
  headers = resp["headers"]
288
298
  headers["Content-Type"] = "text/markdown"
289
299
  headers["Content-Length"] = str(len(markdown))
290
- except Exception as e:
291
- self.logger.error(f"HTTP error occurred: {e}")
300
+ except HTTPError as e:
301
+ self.logger.error(f"HTTP error occurred: ({e.code}) {e.reason} {e.msg}")
292
302
  return False
293
303
 
294
304
  # Now we upload the markdown content to the signed URL
@@ -307,8 +317,8 @@ class SpaceforgePlugin(ABC):
307
317
  )
308
318
  return False
309
319
  self.logger.debug("Markdown content uploaded successfully.")
310
- except Exception as e:
311
- self.logger.error(f"HTTP error occurred during upload: {e}")
320
+ except HTTPError as e:
321
+ self.logger.error(f"HTTP error occurred during upload: ({e.code}) {e.reason} {e.msg}")
312
322
  return False
313
323
 
314
324
  return True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spaceforge
3
- Version: 0.0.7
3
+ Version: 0.0.8
4
4
  Summary: A Python framework for building Spacelift plugins
5
5
  Home-page: https://github.com/spacelift-io/plugins
6
6
  Author: Spacelift
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