fix(ci): blink Gitea CI indicator only during actively running workflow runs
This commit is contained in:
@@ -144,10 +144,23 @@ class RealtimeRPGHandler(http.server.SimpleHTTPRequestHandler):
|
||||
|
||||
# 2. Collect Gitea Live PRs & Issues for Whiteboard Kanban strictly for target_project
|
||||
try:
|
||||
ci_res = subprocess.run(['docker', 'ps', '--filter', 'name=GITEA-ACTIONS', '--format', '{{.Names}}'], capture_output=True, text=True, timeout=2)
|
||||
ci_containers = [l for l in ci_res.stdout.strip().split('\n') if l]
|
||||
status["gitea"]["active_ci_jobs"] = len(ci_containers)
|
||||
status["gitea"]["ci_status"] = "BUILDING" if len(ci_containers) > 0 else "PASSING"
|
||||
# Check Gitea Actions API for actively running workflows
|
||||
active_runs_count = 0
|
||||
try:
|
||||
req_runs = urllib.request.Request(
|
||||
f"{GITEA_BASE_URL}/repos/openclaw/{target_project}/actions/runs?limit=10",
|
||||
headers={'Authorization': f'token {GITEA_TOKEN}'}
|
||||
)
|
||||
with urllib.request.urlopen(req_runs, timeout=2) as resp:
|
||||
runs_data = json.loads(resp.read().decode())
|
||||
for r in runs_data.get("workflow_runs", []):
|
||||
if r.get("status") in ["running", "waiting", "queued"]:
|
||||
active_runs_count += 1
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
status["gitea"]["active_ci_jobs"] = active_runs_count
|
||||
status["gitea"]["ci_status"] = "BUILDING" if active_runs_count > 0 else "PASSING"
|
||||
|
||||
# Fetch Open Pull Requests
|
||||
req_prs = urllib.request.Request(
|
||||
|
||||
Reference in New Issue
Block a user