#!/usr/bin/env python3 from __future__ import annotations import argparse import html import json import re import sys import urllib.error import urllib.request from dataclasses import dataclass from pathlib import Path from typing import Any DEFAULT_ACTIONS_URL = "https://gitea.wooo.work/wooo/awoooi/actions" DEFAULT_ACTIONS_LIST_API_URL = ( "https://gitea.wooo.work/api/v1/repos/wooo/awoooi/actions/runs?limit=10" ) DEFAULT_CD_RUN_JOBS_API_URL = ( "https://gitea.wooo.work/api/v1/repos/wooo/awoooi/actions/runs/3853/jobs" ) SCHEMA_VERSION = "awoooi_public_gitea_actions_queue_readback_v1" _RUN_ROW_RE = re.compile( r'.*?' r"([^<]+):([^<]+)", re.S, ) _RUN_ITEM_SPLIT_RE = re.compile(r'
') _RUN_LINK_RE = re.compile( r'', re.S, ) _RUN_STATUS_RE = re.compile(r'') _RUN_BODY_RE = re.compile(r"([^<]+):\s*([^<]+)", re.S) _RUN_COMMIT_RE = re.compile(r"/wooo/awoooi/commit/([0-9a-f]{40})") _RUN_NAME_RE = re.compile(r"^(?P.+)\s+#(?P\d+)$") _NO_MATCHING_LABEL_RE = re.compile( r"No matching online runner with label:\s*(?P