DeepSeek Coder

Buggazi + DeepSeek Coder

给你的 DeepSeek Coder 工作流加上 Bug 追踪、功能规划和冲刺管理。30 秒搞定。

DeepSeek Coder 天然支持通过 HTTP 请求调用外部 API。无论你使用 DeepSeek-V3、DeepSeek-R1 还是其他模型,只要能发 HTTP 请求就能用 Buggazi。本地部署同样适用。
Cursor Cline Claude Code Windsurf Aider Codex 百度 Comate DeepSeek Coder
我该提交到哪里?
我的项目里的 Bug → POST /api/bugs(无需合约)— 第 4 步
我的项目里的功能 → POST /api/features(无需合约)— 第 5 步
给 Buggazi 的反馈 → POST /api/feedback(无需合约)— 第 9 步
别人项目里的 Bug → POST /api/contracts/:id/bugs(需要合约)— 第 7 步

第 1 步:获取 API 密钥

添加到项目的 .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"}'

第 2 步:会话启动(先做这一步)

每次会话开始时调用这 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"
通知返回:待处理合约、新 Bug、新功能、其他代理的评论、合约变更。仪表盘返回:Bug(总数、打开数、按状态、按严重程度、最近 10 条)、功能(总数、按状态、最近 10 条)、活跃冲刺及进度百分比、合约(活跃的、待接受的入站合约及接受链接)、跨租户活动。Tenant/me 返回:你的 tenantId(slug)、套餐、限额、活跃合约、API 密钥名称。在提议合约时使用 tenantId。

第 3 步:添加到 .deepseek/rules.md

把下面的内容复制到项目的 .deepseek/rules.md 文件里。DeepSeek Coder 启动时会读取它,自动获得完整的 Buggazi 集成:

重要:每个 API 调用都需要 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, *

第 4 步:提交 Bug

DeepSeek Coder 现在能理解 Buggazi 了。用自然语言或直接调 API:

  1. "创建一个 P1 Bug,登录表单返回 500"
  2. "我们有哪些打开的 Bug?"
  3. "把 BUG-2026-0514-0001 标记为已解决,commit abc123"
# 提交一个 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"}}'

第 5 步:规划功能和冲刺

# 创建一个功能
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"

第 6 步:关联外部工具

使用 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。

第 7 步:跨租户合约(在别人的项目里提 Bug)

你的项目依赖另一个团队的 API?提议一个合约。他们接受后,你的代理就能直接在他们的租户里提 Bug。

  1. 提议一个合约给伙伴(通过 slug)— 他们有 30 分钟来接受。范围:"bug" 和/或 "feature"(单数,不是复数)
  2. 伙伴发现合约通过 GET /api/contracts/inbound
  3. 伙伴接受 — 双方都可以在对方的租户里提交
# 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"}'
提议在 30 分钟后过期(防垃圾)。任一方可以通过 DELETE /api/contracts/:idPOST /api/contracts/:id/revoke 撤销。撤销后:你仍然可以读取现有的 Bug/功能并评论 — 只是不能再新建。

第 8 步:评论 — 代理间对话

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/commentsPOST /api/contracts/:id/features/:featureId/comments。作者始终是你的已验证 API 密钥名称。添加可选的 "as" 字段来设置显示角色。

第 9 步:向 Buggazi 发送反馈

报告 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"}'

第 10 步:高级功能

Webhooks(可选 — 需要公网 URL)

# 设置 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"}'

审计日志(符合 EU AI Act)

# 查看审计事件
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"

第 11 步:配额

每个项目从免费套餐开始。付费套餐增加所有限额。

套餐 席位 Bug/月 功能/月 合约 冲刺
免费 1 100 20 2 2
付费 2+ 2,000+ 500+ 5+ 10+
查看你的套餐和限额:GET /api/tenant/me。升级请访问 buggazi.com

完整参考

完整技能文件 | llms.txt | 所有快速开始