alissa-tools-github-revloop 0.31.15__tar.gz → 0.31.16__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 (40) hide show
  1. {alissa_tools_github_revloop-0.31.15/src/main/alissa_tools_github_revloop.egg-info → alissa_tools_github_revloop-0.31.16}/PKG-INFO +1 -1
  2. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/proc.py +20 -0
  3. alissa_tools_github_revloop-0.31.16/src/main/alissa/tools/github/revloop/version +1 -0
  4. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16/src/main/alissa_tools_github_revloop.egg-info}/PKG-INFO +1 -1
  5. alissa_tools_github_revloop-0.31.15/src/main/alissa/tools/github/revloop/version +0 -1
  6. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/LICENSE +0 -0
  7. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/MANIFEST.in +0 -0
  8. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/NOTICE +0 -0
  9. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/README.md +0 -0
  10. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/requirements.txt +0 -0
  11. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/setup.cfg +0 -0
  12. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/setup.py +0 -0
  13. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/__init__.py +0 -0
  14. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/__main__.py +0 -0
  15. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/alissa.py +0 -0
  16. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/alissa_client.py +0 -0
  17. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/bows.py +0 -0
  18. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/config.py +0 -0
  19. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/fleet_vitals.py +0 -0
  20. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/ghclient.py +0 -0
  21. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/janitor.py +0 -0
  22. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/loop.py +0 -0
  23. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/loop_events.py +0 -0
  24. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/parking.py +0 -0
  25. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/prompts.py +0 -0
  26. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/prreview.py +0 -0
  27. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/state.py +0 -0
  28. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/trust.py +0 -0
  29. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/version.py +0 -0
  30. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/webui/__init__.py +0 -0
  31. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/webui/__main__.py +0 -0
  32. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/webui/auth.py +0 -0
  33. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/webui/page.py +0 -0
  34. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/webui/server.py +0 -0
  35. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/webui/sources.py +0 -0
  36. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/webui/sysinfo.py +0 -0
  37. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa_tools_github_revloop.egg-info/SOURCES.txt +0 -0
  38. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa_tools_github_revloop.egg-info/dependency_links.txt +0 -0
  39. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa_tools_github_revloop.egg-info/entry_points.txt +0 -0
  40. {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa_tools_github_revloop.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alissa-tools-github-revloop
3
- Version: 0.31.15
3
+ Version: 0.31.16
4
4
  Summary: ALISSA-TOOLS-GITHUB-REVLOOP
5
5
  Home-page: https://alissa.app
6
6
  Author: Fahera
@@ -8,10 +8,18 @@ inherited -- which is how a reviewer's verdict ended up on GitHub under the
8
8
  IMPLEMENTER's login (issue #51). Callers that must be sure which identity a
9
9
  `gh` call carries pass a fully-resolved environment here; everything else
10
10
  passes None and inherits, exactly as before.
11
+
12
+ A child that cannot even be STARTED is a CommandError too (issue #169): the
13
+ container's cgroup pids.max counts threads, so a busy fleet can make `fork`
14
+ fail with EAGAIN, and an OSError escaping here reads as an unexplained crash
15
+ class rather than "gh could not start". Folding it keeps one failure type for
16
+ every caller (each already handles a CommandError the way it handles a
17
+ timeout) and puts the errno name in the message the poll firewall logs.
11
18
  """
12
19
 
13
20
  from __future__ import annotations
14
21
 
22
+ import errno
15
23
  import json
16
24
  import logging
17
25
  import os
@@ -64,12 +72,24 @@ def run(
64
72
  )
65
73
  except subprocess.TimeoutExpired as exc:
66
74
  raise CommandError(argv, -1, f"timed out after {timeout}s") from exc
75
+ except OSError as exc:
76
+ raise CommandError(argv, -1, f"could not start {argv[0]}: {_os_error_text(exc)}") from exc
67
77
 
68
78
  if check and proc.returncode != 0:
69
79
  raise CommandError(argv, proc.returncode, proc.stderr)
70
80
  return proc.stdout
71
81
 
72
82
 
83
+ def _os_error_text(exc: OSError) -> str:
84
+ """`EAGAIN: Resource temporarily unavailable` -- the errno's symbolic name
85
+ first, since that is what an operator greps for; the bare message when the
86
+ error carries no errno."""
87
+ name = errno.errorcode.get(exc.errno) if exc.errno is not None else None
88
+ if name is None:
89
+ return str(exc)
90
+ return f"{name}: {exc.strerror or exc}"
91
+
92
+
73
93
  def run_json(
74
94
  argv: Sequence[str],
75
95
  *,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alissa-tools-github-revloop
3
- Version: 0.31.15
3
+ Version: 0.31.16
4
4
  Summary: ALISSA-TOOLS-GITHUB-REVLOOP
5
5
  Home-page: https://alissa.app
6
6
  Author: Fahera