spaceforge 0.0.4__tar.gz → 0.0.5__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 (54) hide show
  1. {spaceforge-0.0.4 → spaceforge-0.0.5}/PKG-INFO +1 -1
  2. {spaceforge-0.0.4 → spaceforge-0.0.5}/plugins/wiz/plugin.py +5 -3
  3. {spaceforge-0.0.4 → spaceforge-0.0.5}/plugins/wiz/plugin.yaml +6 -4
  4. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/_version_scm.py +3 -3
  5. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/plugin.py +28 -23
  6. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge.egg-info/PKG-INFO +1 -1
  7. {spaceforge-0.0.4 → spaceforge-0.0.5}/.github/workflows/ci.yml +0 -0
  8. {spaceforge-0.0.4 → spaceforge-0.0.5}/.github/workflows/release.yml +0 -0
  9. {spaceforge-0.0.4 → spaceforge-0.0.5}/.gitignore +0 -0
  10. {spaceforge-0.0.4 → spaceforge-0.0.5}/LICENSE +0 -0
  11. {spaceforge-0.0.4 → spaceforge-0.0.5}/MANIFEST.in +0 -0
  12. {spaceforge-0.0.4 → spaceforge-0.0.5}/README.md +0 -0
  13. {spaceforge-0.0.4 → spaceforge-0.0.5}/go.mod +0 -0
  14. {spaceforge-0.0.4 → spaceforge-0.0.5}/plugins/infracost/plugin.py +0 -0
  15. {spaceforge-0.0.4 → spaceforge-0.0.5}/plugins/infracost/plugin.yaml +0 -0
  16. {spaceforge-0.0.4 → spaceforge-0.0.5}/plugins/sops/plugin.py +0 -0
  17. {spaceforge-0.0.4 → spaceforge-0.0.5}/plugins/sops/plugin.yaml +0 -0
  18. {spaceforge-0.0.4 → spaceforge-0.0.5}/plugins/sops/requirements.txt +0 -0
  19. {spaceforge-0.0.4 → spaceforge-0.0.5}/pyproject.toml +0 -0
  20. {spaceforge-0.0.4 → spaceforge-0.0.5}/setup.cfg +0 -0
  21. {spaceforge-0.0.4 → spaceforge-0.0.5}/setup.py +0 -0
  22. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/README.md +0 -0
  23. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/__init__.py +0 -0
  24. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/__main__.py +0 -0
  25. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/_version.py +0 -0
  26. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/cls.py +0 -0
  27. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/conftest.py +0 -0
  28. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/generator.py +0 -0
  29. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/runner.py +0 -0
  30. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/schema.json +0 -0
  31. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/templates/binary_install.sh.j2 +0 -0
  32. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/templates/ensure_spaceforge_and_run.sh.j2 +0 -0
  33. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_cls.py +0 -0
  34. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_generator.py +0 -0
  35. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_generator_binaries.py +0 -0
  36. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_generator_core.py +0 -0
  37. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_generator_hooks.py +0 -0
  38. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_generator_parameters.py +0 -0
  39. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_plugin.py +0 -0
  40. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_plugin_file_operations.py +0 -0
  41. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_plugin_hooks.py +0 -0
  42. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_plugin_inheritance.py +0 -0
  43. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_runner.py +0 -0
  44. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_runner_cli.py +0 -0
  45. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_runner_core.py +0 -0
  46. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge/test_runner_execution.py +0 -0
  47. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge.egg-info/SOURCES.txt +0 -0
  48. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge.egg-info/dependency_links.txt +0 -0
  49. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge.egg-info/entry_points.txt +0 -0
  50. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge.egg-info/not-zip-safe +0 -0
  51. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge.egg-info/requires.txt +0 -0
  52. {spaceforge-0.0.4 → spaceforge-0.0.5}/spaceforge.egg-info/top_level.txt +0 -0
  53. {spaceforge-0.0.4 → spaceforge-0.0.5}/templates.go +0 -0
  54. {spaceforge-0.0.4 → spaceforge-0.0.5}/test.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spaceforge
3
- Version: 0.0.4
3
+ Version: 0.0.5
4
4
  Summary: A Python framework for building Spacelift plugins
5
5
  Home-page: https://github.com/spacelift-io/plugins
6
6
  Author: Spacelift
@@ -88,9 +88,9 @@ webhook[{"endpoint_id": "wiz-alert-endpoint"}] {
88
88
  input.run_updated.run.marked_unsafe == true
89
89
  }
90
90
  """,
91
- labels={
91
+ labels=[
92
92
  "wiz-plugin"
93
- }
93
+ ]
94
94
  )
95
95
  ]
96
96
 
@@ -179,4 +179,6 @@ webhook[{"endpoint_id": "wiz-alert-endpoint"}] {
179
179
  markdown += "\n"
180
180
  if "reportUrl" in stdout_json:
181
181
  markdown += f"<a href=\"{stdout_json['reportUrl']}\" rel=\"noopener noreferrer\">View Report</a>\n"
182
- self.send_markdown(markdown)
182
+ result = self.send_markdown(markdown)
183
+ if not result:
184
+ self.logger.error("Failed to send Wiz CLI output to spacelift")
@@ -134,9 +134,9 @@ contexts:
134
134
  input.run_updated.run.marked_unsafe == true
135
135
  }
136
136
  """,
137
- labels={
137
+ labels=[
138
138
  "wiz-plugin"
139
- }
139
+ ]
140
140
  )
141
141
  ]
142
142
 
@@ -225,7 +225,9 @@ contexts:
225
225
  markdown += "\n"
226
226
  if "reportUrl" in stdout_json:
227
227
  markdown += f"<a href=\"{stdout_json['reportUrl']}\" rel=\"noopener noreferrer\">View Report</a>\n"
228
- self.send_markdown(markdown)
228
+ result = self.send_markdown(markdown)
229
+ if not result:
230
+ self.logger.error("Failed to send Wiz CLI output to spacelift")
229
231
  sensitive: false
230
232
  - path: /mnt/workspace/plugins/wiz/binary_install_wizcli.sh
231
233
  content: |-
@@ -266,7 +268,7 @@ contexts:
266
268
  fi
267
269
  . venv/bin/activate
268
270
 
269
- if command -v spaceforge; then
271
+ if ! command -v spaceforge; then
270
272
  pip install spaceforge
271
273
  fi
272
274
 
@@ -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.4'
32
- __version_tuple__ = version_tuple = (0, 0, 4)
31
+ __version__ = version = '0.0.5'
32
+ __version_tuple__ = version_tuple = (0, 0, 5)
33
33
 
34
- __commit_id__ = commit_id = 'g46df965db'
34
+ __commit_id__ = commit_id = 'gd83c2c6ce'
@@ -233,7 +233,7 @@ class SpaceforgePlugin(ABC):
233
233
  data: Dict[str, Any] = json.load(f)
234
234
  return data
235
235
 
236
- def send_markdown(self, markdown: str) -> None:
236
+ def send_markdown(self, markdown: str) -> bool:
237
237
  """
238
238
  Send a markdown message to the Spacelift run.
239
239
 
@@ -245,13 +245,13 @@ class SpaceforgePlugin(ABC):
245
245
  "Spacelift run is local. Not uploading markdown. Below is a preview of what would be sent"
246
246
  )
247
247
  self.logger.info(markdown)
248
- return
248
+ return True
249
249
 
250
250
  if self._spacelift_markdown_endpoint is None:
251
251
  self.logger.error(
252
252
  'API is not enabled, please export "SPACELIFT_API_TOKEN" and "TF_VAR_spacelift_graphql_endpoint".'
253
253
  )
254
- exit(1)
254
+ return False
255
255
 
256
256
  headers = {"Authorization": f"Bearer {self._api_token}"}
257
257
  body = {
@@ -266,26 +266,30 @@ class SpaceforgePlugin(ABC):
266
266
  method="POST",
267
267
  )
268
268
 
269
- with urllib.request.urlopen(req) as response:
270
- if response.status != 200:
271
- self.logger.error(
272
- f"Error getting signed URL for markdown upload: {response}"
273
- )
274
- return
275
-
276
- raw_response = response.read().decode("utf-8")
277
- self.logger.debug(raw_response)
278
- resp: Dict[str, Any] = json.loads(raw_response)
279
- if "url" not in resp or "headers" not in resp:
280
- self.logger.error(
281
- "Markdown signed url response does not contain 'url' or 'headers' key."
282
- )
283
- return
269
+ try:
270
+ with urllib.request.urlopen(req) as response:
271
+ if response.status != 200:
272
+ self.logger.error(
273
+ f"Error getting signed URL for markdown upload: {response}"
274
+ )
275
+ return False
276
+
277
+ raw_response = response.read().decode("utf-8")
278
+ self.logger.debug(raw_response)
279
+ resp: Dict[str, Any] = json.loads(raw_response)
280
+ if "url" not in resp or "headers" not in resp:
281
+ self.logger.error(
282
+ "Markdown signed url response does not contain 'url' or 'headers' key."
283
+ )
284
+ return False
284
285
 
285
- signed_url = resp["url"]
286
- headers = resp["headers"]
287
- headers["Content-Type"] = "text/markdown"
288
- headers["Content-Length"] = str(len(markdown))
286
+ signed_url = resp["url"]
287
+ headers = resp["headers"]
288
+ headers["Content-Type"] = "text/markdown"
289
+ headers["Content-Length"] = str(len(markdown))
290
+ except urllib.request.HTTPError as e:
291
+ self.logger.error(f"HTTP error occurred: {e.code} - {e.reason}")
292
+ return False
289
293
 
290
294
  # Now we upload the markdown content to the signed URL
291
295
  req = urllib.request.Request(
@@ -300,8 +304,9 @@ class SpaceforgePlugin(ABC):
300
304
  self.logger.error(
301
305
  f"Error uploading markdown content: {put_response.status}"
302
306
  )
303
- return
307
+ return False
304
308
  self.logger.debug("Markdown content uploaded successfully.")
309
+ return True
305
310
 
306
311
  def add_to_policy_input(self, input_name: str, data: Dict[str, Any]) -> None:
307
312
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spaceforge
3
- Version: 0.0.4
3
+ Version: 0.0.5
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