boardx / boardx/boardx-dev-template
[F05] GitHub App 多仓安装流:/onboard 接真(UC-01 接入体检真实现)
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## 交付契约(user_visible_behavior)
/onboard 三步向导接真:①「跳转 GitHub 安装」发起真实 GitHub App(App 4328933)安装授权,返回真实 installation 回执(install-receipt 显示 installation # + 账户 + 权限清单);② repo 列表来自该 installation 的真实仓库,admin 权限徽章按 GitHub collaborator permission 真实判定,非 admin 禁用;③ 自动体检由后端逐项回报事件驱动(webhook 连通 / issues·PR 镜像种子真实灌入 / CODEOWNERS·CONTRIBUTING 检查 / 分支保护检查,警告不阻塞),checkup-item- 的 data-state 跟随真实进度;完成后项目出现在目录 DO 中成为租户、coord-agent 归属确立,「进入工作区」落 /p/:slug/settings;全程目标 ≤5 分钟。
## Story
[requirements/feature-list-draft.md](https://github.com/boardx/boardx-dev-template/blob/main/phases/phase-p30-devportal-platform/requirements/feature-list-draft.md) — 章节 `R5`
## 验证(完成的唯一标准:每条命令退出码 0)
- [ ] `pnpm --filter coord-gateway test`
- [ ] `bash phases/phase-p30-devportal-platform/scripts/verify-onboard-checkup.sh`
- [ ] `test -f apps/devportal/e2e/p30/onboard.spec.ts && pnpm --filter devportal exec playwright test e2e/p30/onboard.spec.ts`
证据落盘:`phases/phase-p30-devportal-platform/sprints/sprint-02/evidence/F05.verify.log`
## 实现指引(notes)
p29-F03 的 App 与 webhook ingest 是单仓的,本 feature 把它扩成「安装即租户注册」多仓流(installation/installation_repositories 事件 → 目录 DO 写入的单测归 coord-gateway test)。onboard-elapsed 显示真实耗时而非静态 3m42s。e2e spec 待写,锚定批 3 testid:onboard-step-{1,2,3} 真实点击路径、admin-badge-*/not-admin-* 与真实权限一致、onboard-done 与 enter-workspace 出现。
## 设计参照
(无 UI 或沿用现有界面)
## 前置依赖
- 无
## 元数据
| phase | sprint | 能力平面 | 优先级 | wave | area |
|---|---|---|---|---|---|
| p30 | 02 | CAP-DATA | P2 | - | platform |
## 开工流程(agent 必读)
> 本 issue 是仓库的**只读投影**;权威是 [`phases/phase-p30-devportal-platform/feature_list.json`](https://github.com/boardx/boardx-dev-template/blob/main/phases/phase-p30-devportal-platform/feature_list.json)。若两者不一致,以仓库为准。
1. 环境:`./init.sh`(验证失败先修基础状态,别在坏地基上开工)。
2. 认领:`pnpm harness claim --phase p30 --feature F05 --owner <你的-agent-id>`(同一 owner 同时最多一个 in_progress)。
3. 读上下文:[`requirements/`](https://github.com/boardx/boardx-dev-template/blob/main/phases/phase-p30-devportal-platform/requirements)(原始需求)、[`ui-signoff.md`](https://github.com/boardx/boardx-dev-template/blob/main/phases/phase-p30-devportal-platform/ui-signoff.md)(已确认 UI 的组件落点与 data-testid)、[`sprints/sprint-02/session-handoff.md`](https://github.com/boardx/boardx-dev-template/blob/main/phases/phase-p30-devportal-platform/sprints/sprint-02/session-handoff.md)(上一轮交接)。
4. 实现:只做本 feature 的最小实现,不顺手重构无关区域;不碰 `active-features.json`(脚本派生只读)。
5. 验证:逐条跑上方 verification,输出留到 `phases/phase-p30-devportal-platform/sprints/sprint-02/evidence/F05.verify.log`;然后 `pnpm harness verify --sprint p30/02 --feature F05` 门控转 passing——**不允许手改 status**。
6. 提交:分支 `worker/-p30-f05-`,PR 关联本 issue(`Closes #<本 issue 号>`),收尾更新 progress.md 与 session-handoff.md。
完整硬约束见 [`AGENTS.md`](https://github.com/boardx/boardx-dev-template/blob/main/AGENTS.md);多 agent 协作规则见 [`.harness/instructions/multi-agent-coordination.md`](https://github.com/boardx/boardx-dev-template/blob/main/.harness/instructions/multi-agent-coordination.md)。
Contributor guide
No contributing guide indexed for this repository
Research direction
Run ./init.sh first, then read requirements/feature-list-draft.md (R5), ui-signoff.md, and sprints/sprint-02/session-handoff.md. Use pnpm --filter coord-gateway test, verify-onboard-checkup.sh, and apps/devportal/e2e/p30/onboard.spec.ts as the validation entry points; done means all listed commands pass and evidence is saved to phases/phase-p30-devportal-platform/sprints/sprint-02/evidence/F05.verify.log.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, playwright, typescript
- Domain
- api, authentication, full-stack, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100