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.
- {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
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/proc.py +20 -0
- alissa_tools_github_revloop-0.31.16/src/main/alissa/tools/github/revloop/version +1 -0
- {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
- alissa_tools_github_revloop-0.31.15/src/main/alissa/tools/github/revloop/version +0 -1
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/LICENSE +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/MANIFEST.in +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/NOTICE +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/README.md +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/requirements.txt +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/setup.cfg +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/setup.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/__init__.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/__main__.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/alissa.py +0 -0
- {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
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/bows.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/config.py +0 -0
- {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
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/ghclient.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/janitor.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/loop.py +0 -0
- {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
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/parking.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/prompts.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/prreview.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/state.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/trust.py +0 -0
- {alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/src/main/alissa/tools/github/revloop/version.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
|
@@ -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
|
*,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.31.16
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.31.15
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{alissa_tools_github_revloop-0.31.15 → alissa_tools_github_revloop-0.31.16}/requirements.txt
RENAMED
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|