Skip to content

[讨论] Webhook 触发:监听 GitHub Issue 事件实现自动调度 #3

Description

@JiGuangWorker

背景

目前 code-bee 需要手动执行 CLI 命令来触发任务调度:

code-bee --repo your-org/your-repo --issue 42

路线图中已规划 "Webhook 触发" 功能,目标是:当 Issue 发生特定事件时(如新建、编辑、打标签等),自动触发 code-bee 解析并调度智能体,无需人工干预。


讨论重点

1. GitHub Webhook 的 Issue 事件有哪些?

GitHub 提供了 issues 事件类型,包含以下 action:

Action 触发时机 是否适合自动调度?
opened 新建 Issue ✅ 核心场景
edited 编辑 Issue 标题/正文 ✅ 可能更新了任务描述
labeled 添加标签 ⚠️ 可能用于触发特定 Agent
assigned 分配负责人 ❓ 视场景而定
closed / reopened 关闭/重开 ❌ 通常不需要
deleted 删除 Issue ❌ 不需要

另外还有 issue_comment 事件(评论的 created/edited/deleted),这在后续可能用于"在评论中 @agent 补充指令"。

2. 主要讨论点

2.1 应该监听哪些事件?

  • 最小可行方案:只监听 issues.opened(新建 Issue 时触发)
  • 完整方案:同时监听 issues.opened + issues.edited + issue_comment.created
  • 是否需要通过特定标签(如 @agent-namebee:trigger)来控制触发?

2.2 Webhook 接收端如何设计?

  • 方案 A:在 code-bee 项目内增加一个 HTTP servercmd/webhook/ 或类似)

    • 优点:自包含,部署简单
    • 缺点:需要公网可达的服务器
  • 方案 B:使用 GitHub Actions 的 workflow_dispatchrepository_dispatch

    • 优点:无需自建服务器,在 GitHub 内闭环
    • 缺点:延迟较高,复杂逻辑受限
  • 方案 C:利用现有平台(如 Cloudflare Workers / AWS Lambda) 做轻量转发

    • 优点:低成本、免运维
    • 缺点:引入外部依赖

2.3 安全性

  • Webhook Secret 签名验证(HMAC-SHA256)
  • 如何防止重复触发(同一 Issue 短时间内多次事件)
  • 是否需要白名单仓库/组织?

2.4 与现有架构的集成

  • 当前 code-bee 是 CLI 工具,Webhook 触发后如何复用现有逻辑?
  • 是否需要将核心逻辑抽离为 internal/engine/ 或类似包,供 CLI 和 Webhook 共用?
  • 异步执行如何管理(goroutine pool?消息队列?)

相关参考


期望产出

通过讨论,希望确定:

  1. 第一版 Webhook 触发的最小可行范围(MVP)
  2. 技术方案选型(自建 Server vs GitHub Actions vs Serverless)
  3. 实现路线图与分工

欢迎大家畅所欲言!🚀

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions