對外 CloudEvents 發送器

AutoControl 能*接收* webhook,但一直無法*對外發送*事件。CloudEvents 1.0(CNCF)是事件 酬載的互通標準 —— Knative、Azure Event Grid、iPaaS 與一般 webhook 消費端皆採用。本功能 將執行生命週期 / 斷言 / 失敗資料包進 CloudEvents 信封,並(選擇性地)透過 HTTP binding POST 出去,重用框架的出口允許清單守衛。

傳輸可注入(sink / poster 可呼叫物件),因此發送在無網路下即可單元測試。純標準函 式庫;不匯入 PySide6

無頭 API

from je_auto_control import to_cloudevent, post_cloudevent, EventEmitter

event = to_cloudevent("com.example.run.finished", "/runs/42",
                      {"status": "passed"}, subject="run-42")
# -> {specversion, id, source, type, time, datacontenttype, subject, data}

post_cloudevent("https://hooks.example.com/ce", event)   # 受出口守衛保護的 POST

emitter = EventEmitter(source="je_auto_control")
emitter.emit("run.started", {"flow": "checkout"})
emitter.events                                           #擷取到的信封

to_cloudevent 會自動填入 specversion / id``(新的 UUID)/ ``time``(現在, UTC);可傳 ``event_id / time 覆寫。EventEmitter 綁定固定的 source 並將每個 信封派送到 sink``(預設為記憶體內日誌 —— 可注入自己的以轉發到匯流排)。 ``post_cloudevent 接受 poster 以在測試中注入傳輸。

執行器指令

AC_emit_event 接受 event_type``(以及選用的 ``data / source / subject / url);回傳 {event},當提供 url 時於 POST 後回傳 {event, status}。相同操作 亦提供為 MCP 工具 ac_emit_event,以及 Script Builder 中 Tools 分類下的指令。