给你的 DeepSeek Coder 工作流加上 Bug 追踪、功能规划和冲刺管理。30 秒搞定。
POST /api/bugs(无需合约)— 第 4 步POST /api/features(无需合约)— 第 5 步POST /api/feedback(无需合约)— 第 9 步POST /api/contracts/:id/bugs(需要合约)— 第 7 步
添加到项目的 .env 文件:
BUGGAZI_BASE_URL=https://buggazi.com BUGGAZI_API_KEY=bgz_your_key_here
还没有密钥?通过 API 免费注册,不需要仪表盘:
curl -X POST https://buggazi.com/api/signup \
-H "Content-Type: application/json" \
-d '{"slug":"my-project","name":"My Project","email":"you@example.com"}'
每次会话开始时调用这 3 个接口。它们替代了 10 多个单独的端点调用:
# 1. 上次之后有什么变化?(默认:最近 24 小时) curl "$BUGGAZI_BASE_URL/api/tenant/notifications" \ -H "Authorization: Bearer $BUGGAZI_API_KEY" # 2. 一个调用获取完整项目状态 curl "$BUGGAZI_BASE_URL/api/dashboard" \ -H "Authorization: Bearer $BUGGAZI_API_KEY" # 3. 我是谁?(你的 slug、套餐、限额、合约) curl "$BUGGAZI_BASE_URL/api/tenant/me" \ -H "Authorization: Bearer $BUGGAZI_API_KEY"
把下面的内容复制到项目的 .deepseek/rules.md 文件里。DeepSeek Coder 启动时会读取它,自动获得完整的 Buggazi 集成:
Authorization: Bearer $BUGGAZI_API_KEY 请求头。没有它你会收到 401 错误。没有例外。
# Buggazi Integration
This project uses Buggazi for bug tracking, feature planning, and sprint management.
API base: ${BUGGAZI_BASE_URL}. Auth: Bearer ${BUGGAZI_API_KEY}.
EVERY request MUST include: -H "Authorization: Bearer ${BUGGAZI_API_KEY}" -H "Content-Type: application/json"
## Session start (DO THIS FIRST)
1. GET /api/tenant/notifications?since=LAST_SESSION_ISO → what changed
2. GET /api/dashboard → full status + cross-tenant activity
3. GET /api/tenant/me → your slug, plan, limits
Then work. Only use GET /api/bugs, GET /api/features for search/filter.
## When tests fail
POST /api/bugs with: title, severity (open string, e.g. P0-P3 or your own), category (projectname-domain),
source ("e2e-test"), evidence.testOutput (error stack).
## When fixing bugs
GET /api/bugs?status=open to see open bugs. Add ?q=text to search.
PATCH /api/bugs/:bugId with: status ("fixing"), diagnosis.rootCause, diagnosis.affectedFiles[].
After fix verified: PATCH /api/bugs/:bugId/resolve with: resolution.fix, resolution.filesChanged[], resolution.commitSha.
## When planning features
POST /api/features with: title, priority (open string), category, status ("todo"|"in-progress").
POST /api/features/:id/link-bug with: bugId (link related bugs).
GET /api/features/board for kanban view.
## When managing sprints
POST /api/sprints with: name, goal, startDate, endDate, status ("active").
GET /api/sprints/active for progress (percentComplete computed from features).
## Key patterns
- Bug IDs: BUG-YYYY-MMDD-NNNN (auto-generated, 4-digit counter)
- Feature IDs: FEAT-YYYY-MMDD-NNNN (auto-generated)
- Screenshots: send base64 PNG in evidence.screenshots[].data, CDN URL returned
- Status fields accept any string (no enum restriction)
- externalLinks (optional): [{ url: "https://github.com/org/repo/pull/42", label: "PR #42" }]
- All requests need: -H "Authorization: Bearer ${BUGGAZI_API_KEY}" -H "Content-Type: application/json"
## Cross-tenant contracts (file bugs in another project)
POST /api/contracts/propose {"partnerSlug":"their-slug","scope":["bug","feature"]}
Partner accepts → POST /api/contracts/:id/bugs to file in their tenant.
Comments: POST /api/contracts/:id/bugs/:bugId/comments {"message":"..."}
Revoke: DELETE /api/contracts/:id or POST /api/contracts/:id/revoke {"reason":"..."}
## Comments
POST /api/bugs/:bugId/comments {"message":"...","as":"qa-lead"} — threaded on bugs/features.
POST /api/contracts/:id/bugs/:bugId/comments — cross-tenant comments.
Auto-reopen: commenting on closed bugs/features reopens them.
## Feedback to Buggazi
POST /api/feedback {"type":"bug","title":"...","severity":"P1","category":"buggazi-api"}
GET /api/feedback — list your feedback. POST /api/feedback/:id/comments — comment on it.
## Webhooks (optional — only if your service has a public URL)
PUT /api/settings/webhooks with: url, events ["bug:resolved","*"], enabled:true.
Events: bug:created, bug:resolved, feature:created, sprint:updated, *
DeepSeek Coder 现在能理解 Buggazi 了。用自然语言或直接调 API:
# 提交一个 Bug
curl -X POST $BUGGAZI_BASE_URL/api/bugs \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Login form returns 500","severity":"P1","category":"my-project-auth","source":"deepseek-coder"}'
# 按关键词搜索 Bug
curl "$BUGGAZI_BASE_URL/api/bugs?q=timeout&status=open" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
# 解决一个 Bug
curl -X PATCH "$BUGGAZI_BASE_URL/api/bugs/BUG_ID/resolve" \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"resolution":{"fix":"Fixed null check in auth middleware","filesChanged":["src/auth.js"],"commitSha":"abc123"}}'
# 创建一个功能
curl -X POST $BUGGAZI_BASE_URL/api/features \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"SSO support","priority":"P1","category":"auth","status":"todo"}'
# 将 Bug 关联到功能
curl -X POST "$BUGGAZI_BASE_URL/api/features/FEAT_ID/link-bug" \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"bugId":"BUG_ID"}'
# 查看看板
curl "$BUGGAZI_BASE_URL/api/features/board" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
# 按关键词搜索功能
curl "$BUGGAZI_BASE_URL/api/features?q=authentication&status=backlog" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
# 创建一个冲刺
curl -X POST $BUGGAZI_BASE_URL/api/sprints \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Sprint 1","goal":"Core auth","startDate":"2026-06-01","endDate":"2026-06-14","status":"active"}'
# 查看冲刺进度
curl "$BUGGAZI_BASE_URL/api/sprints/active" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
使用 externalLinks 字段将 GitHub PR、Issue 或任何 URL 附加到 Bug 和功能:
# 提交一个关联了 GitHub Issue 的 Bug
curl -X POST $BUGGAZI_BASE_URL/api/bugs \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Auth timeout on /v2","severity":"P1","category":"api","externalLinks":[{"url":"https://github.com/org/repo/issues/42","label":"Issue #42"}]}'
# 更新功能时添加链接
curl -X PATCH "$BUGGAZI_BASE_URL/api/features/FEAT_ID" \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"externalLinks":[{"url":"https://github.com/org/repo/pull/99","label":"PR #99"}]}'
externalLinks 是 Bug 和功能上的可选数组。每个条目有 url(必填)和 label(可选的显示名称)。用它将 Buggazi 项目连接到 GitHub PR、Jira 工单、Linear Issue 或任何外部 URL。
你的项目依赖另一个团队的 API?提议一个合约。他们接受后,你的代理就能直接在他们的租户里提 Bug。
"bug" 和/或 "feature"(单数,不是复数)GET /api/contracts/inbound# 1. 提议一个合约(30 分钟后过期)
curl -X POST $BUGGAZI_BASE_URL/api/contracts/propose \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"partnerSlug":"tygaapp","scope":["bug","feature"]}'
# 2. 伙伴检查入站提议
curl "$BUGGAZI_BASE_URL/api/contracts/inbound" \
-H "Authorization: Bearer $PARTNER_API_KEY"
# 3. 伙伴接受
curl -X POST $BUGGAZI_BASE_URL/api/contracts/CTR_ID/accept \
-H "Authorization: Bearer $PARTNER_API_KEY"
# 4. 在伙伴的租户里提 Bug
curl -X POST $BUGGAZI_BASE_URL/api/contracts/CTR_ID/bugs \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Chat widget timeout","severity":"P1","category":"tygaapp-chat"}'
# 列出该合约上的 Bug(双方都可以查看)
curl "$BUGGAZI_BASE_URL/api/contracts/CTR_ID/bugs?status=open" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
# 列出你的活跃合约
curl "$BUGGAZI_BASE_URL/api/contracts?status=active" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
# 撤销合约(任一方)
curl -X DELETE "$BUGGAZI_BASE_URL/api/contracts/CTR_ID" \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"reason":"No longer collaborating"}'
DELETE /api/contracts/:id 或 POST /api/contracts/:id/revoke 撤销。撤销后:你仍然可以读取现有的 Bug/功能并评论 — 只是不能再新建。
Bug 和功能上的线程式对话。自动重新打开:对已关闭的项目发表评论会重新打开它。
# 对你自己的 Bug 发表评论
curl -X POST "$BUGGAZI_BASE_URL/api/bugs/BUG_ID/comments" \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message":"Reproduced on Chrome 126. Stack trace in diagnosis.","as":"qa-lead"}'
# 读取评论
curl "$BUGGAZI_BASE_URL/api/bugs/BUG_ID/comments" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
# 对跨租户的 Bug 发表评论(通过合约)
curl -X POST "$BUGGAZI_BASE_URL/api/contracts/CTR_ID/bugs/BUG_ID/comments" \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message":"Can you confirm this on the /v2 endpoint?"}'
# 删除评论(只能删自己的)
curl -X DELETE "$BUGGAZI_BASE_URL/api/bugs/BUG_ID/comments/COMMENT_ID" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
POST /api/features/:featureId/comments 和 POST /api/contracts/:id/features/:featureId/comments。作者始终是你的已验证 API 密钥名称。添加可选的 "as" 字段来设置显示角色。
报告 Buggazi 本身的 Bug 或向 Buggazi 请求功能。这会发送给 Buggazi 团队 — 不是其他项目。其他租户的 Bug 请使用合约(第 7 步)。
# 报告 Buggazi 的 Bug
curl -X POST $BUGGAZI_BASE_URL/api/feedback \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"bug","title":"API returns 500 on bulk create","severity":"P1","category":"buggazi-api"}'
# 向 Buggazi 请求功能
curl -X POST $BUGGAZI_BASE_URL/api/feedback \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"feature","title":"Add webhook retry on failure","priority":"P2","category":"buggazi-api"}'
# 列出你提交的反馈
curl "$BUGGAZI_BASE_URL/api/feedback" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
# 对你的反馈发表评论
curl -X POST "$BUGGAZI_BASE_URL/api/feedback/FEEDBACK_ID/comments" \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message":"Still seeing this on v2.8.17"}'
# 设置 Webhook
curl -X PUT $BUGGAZI_BASE_URL/api/settings/webhooks \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://your-app.com/api/webhooks/buggazi","events":["bug:resolved","*"],"enabled":true}'
# 保存返回的 secret 用于 HMAC-SHA256 验证
事件类型:bug:created, bug:resolved, bug:status_changed, feature:created, sprint:updated, *。没有公网 URL?使用 GET /api/tenant/notifications 轮询代替。
# 你的公开路线图(查看者无需认证)
https://buggazi.com/roadmap.html?tenant=YOUR_TENANT_ID
# 切换可见性
curl -X PUT $BUGGAZI_BASE_URL/api/settings/roadmap \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"public": true}'
# 白标:设置你的 Logo
curl -X PUT $BUGGAZI_BASE_URL/api/settings/branding \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"cdnLogoUrl":"https://your-cdn.com/logo.svg"}'
# 查看审计事件 curl "$BUGGAZI_BASE_URL/api/audit?entityType=bug&limit=10" \ -H "Authorization: Bearer $BUGGAZI_API_KEY" # 导出合规报告 curl "$BUGGAZI_BASE_URL/api/audit/export?format=csv" \ -H "Authorization: Bearer $BUGGAZI_API_KEY" -o audit.csv
# 创建测试目标
curl -X POST "$BUGGAZI_BASE_URL/api/targets" \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"My Service","url":"https://my-service.com","modes":["public"]}'
# 发现 → 生成 → 运行
curl -X POST "$BUGGAZI_BASE_URL/api/targets/TARGET_ID/discover" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
curl -X POST "$BUGGAZI_BASE_URL/api/targets/TARGET_ID/scenarios/generate" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
curl -X POST "$BUGGAZI_BASE_URL/api/targets/TARGET_ID/scenarios/run" \
-H "Authorization: Bearer $BUGGAZI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"headless":true}'
# 查看结果
curl "$BUGGAZI_BASE_URL/api/stats" \
-H "Authorization: Bearer $BUGGAZI_API_KEY"
每个项目从免费套餐开始。付费套餐增加所有限额。
| 套餐 | 席位 | Bug/月 | 功能/月 | 合约 | 冲刺 |
|---|---|---|---|---|---|
| 免费 | 1 | 100 | 20 | 2 | 2 |
| 付费 | 2+ | 2,000+ | 500+ | 5+ | 10+ |
GET /api/tenant/me。升级请访问 buggazi.com。