{
  "added_at": "2026-11-09",
  "additional_evidence_urls": [
    "https://github.com/Hacksore/github-websocket-pipeline-api/blob/ab13b29608b3148569b13975d52b1bbe5550cd17/README.md",
    "https://github.com/Hacksore/github-websocket-pipeline-api/blob/ab13b29608b3148569b13975d52b1bbe5550cd17/package.json"
  ],
  "category": "reconstruction-cases",
  "class": "website",
  "description_en": "github-websocket-pipelines-api probes GitHub Actions' undocumented live-log WebSocket interface. Its TypeScript client finds an in-progress run, obtains a socket URL through GitHub's live-log endpoints, sends a JSON handshake and WatchRunAsync request with a record separator, and prints incoming messages.",
  "description_zh": "github-websocket-pipelines-api 探查 GitHub Actions 未公开的实时日志 WebSocket 接口。其 TypeScript 客户端查找运行中的任务，经 GitHub 实时日志端点取得连接地址，发送带记录分隔符的 JSON 握手与 WatchRunAsync 请求，并输出收到的消息。",
  "entry_url": "https://awesomerea.org/resources/github-websocket-pipelines-api-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/github-websocket-pipelines-api-case/",
  "evidence_url": "https://github.com/Hacksore/github-websocket-pipeline-api/blob/ab13b29608b3148569b13975d52b1bbe5550cd17/client.ts",
  "group": "cases",
  "id": "github-websocket-pipelines-api-case",
  "json_url": "https://awesomerea.org/resources/github-websocket-pipelines-api-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/github-websocket-pipelines-api-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/github-websocket-pipelines-api-case/index.md",
  "name": "github-websocket-pipelines-api: probing GitHub Actions live-log messages",
  "name_zh": "github-websocket-pipelines-api：探查 GitHub Actions 实时日志消息",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "scope",
    "license"
  ],
  "requirements": [
    "A USER_SESSION environment value is required by the client.",
    "The example is fixed to a user and repository in client.ts and looks for an in-progress Actions run.",
    "MIT license is declared in package.json."
  ],
  "requirements_zh": [
    "客户端需要 USER_SESSION 环境变量。",
    "client.ts 中的示例固定了用户和仓库，并查找正在运行的 Actions 任务。",
    "package.json 声明 MIT 许可证。"
  ],
  "targets": [
    "protocol",
    "website"
  ],
  "url": "https://github.com/Hacksore/github-websocket-pipeline-api",
  "verification": "source-reviewed",
  "verified_at": "2026-11-07"
}
