Commit Graph

5 Commits

Author SHA1 Message Date
lanrtop
4cd941c975 feat(gitea): G7 一键接线——新建仓库后本地 init/origin/首推一键完成
绑定完成但本地未连通时(无 .git 或无 origin),Gitea 绑定区显示接线引导:
- 无 git → init + 首次提交 + 关联 origin + 推送
- 有 git 无 origin → 关联 origin + 推送当前分支
复用 publish.rs 存量命令(git_init_and_commit/git_remote_set/git_push),
补齐 GitHub 退役时遗落的"本地接线"半程(接线/放风筝边界裁决的落地)。

Rules-Applied: R01
2026-07-03 10:04:31 +09:00
lanrtop
b7008a132e fix(gitea): 建仓需 write:user scope——实例支持改 Token + 权限提示补全
- Gitea 的 POST /user/repos 归 write:user scope(403 实测,R10:以实际
  行为为准),此前权限指导只给了 read:user 导致新建仓库失败
- GiteaInstancesSection 新增「改 Token」内联编辑(此前无入口,删除实例
  重建会级联丢失全部仓库绑定)
- 添加实例的 placeholder 补权限要求说明

Rules-Applied: R08, R10
2026-07-03 09:38:31 +09:00
lanrtop
8a64b29445 feat(gitea): G6 远端轮询采集——公网 Gitea + 内网炼境拓扑的观测面方案
- poll_all_repos:后台线程每 10 分钟出站拉取所有绑定仓库最新 commit
  (GET /repos/:owner/:repo/commits),record_commit 幂等写入,与本地
  watcher / 全量导入三路径共存不重复计数
- gitea_poll_now 命令 + GiteaPanel「立即拉取」按钮与拓扑说明
- 决策记录:webhook 仅作同网补充,否决 frp 全端口映射(MCP 路由无鉴权,
  27190 保持零公网暴露);飞轮为统计系统,10 分钟延迟无影响

验证:cargo test 67 passed(新增轮询解析 2 测试)、typecheck 全绿

Rules-Applied: R01, R07
2026-07-02 16:36:18 +09:00
lanrtop
bf697b5e28 feat(ui): 功能区重构阶段二——洞察页 + 全局/项目层级归位(N3/N4/N5)
N3 洞察页三 tab(飞轮/健康中心/全局治理):
   - FlywheelPanel(版本队列/阻塞/停转归档/Git质量/梦核)整体迁出 BlueprintModal
     ——跨项目内容不再寄生单项目弹窗,BlueprintModal 减重 414 行
   - CONVENTIONS 规则来源 + 应用梦核建议迁至全局治理 tab(影响所有项目的操作归全局层)
   - BlueprintModal 侧板只留单项目内容(模块详情/余票/可派发/项目治理)
N4 Gitea 层级归位:实例管理(全局配置)拆为 GiteaInstancesSection 挂设置页;
   项目绑定+webhook 留治理面板,无实例时提示去设置页添加;共用 queryKey 缓存
N5 仓库注册表并入 项目→管理→仓库 tab(RegistryTab 复用),Sidebar 底部入口
   与弹窗死壳移除;总览页更名对齐"跨项目行动项"定位

至此 ui-restructure N1-N5 全部完成:三条公理(名实一致/层级对齐/频率分层)落地。
零后端变更,typecheck 全绿。
2026-07-02 14:51:43 +09:00
lanrtop
d14b348845 feat(gitea): G2-G5 全链路——建仓/迁移/绑定 + webhook 收发 + 治理面板
G2 控制面:gitea_create_repo / gitea_migrate_repo / gitea_link_repo,
   upsert 绑定(换绑自动重置 webhook 字段),API 错误提取 Gitea message 可读返回
G3 观测面:MCP Server 新增 POST /webhook/gitea/:project_id——HMAC-SHA256 验签
   (X-Gitea-Signature,兼容 X-Hub-Signature-256)→ 解析 commits → 批量
   record_commit(sha 幂等,与本地 watcher 双路径不重复计数);验签失败记 log_event
G4 webhook 注册:gitea_setup_webhook 生成随机 secret 注册 push hook(重设先删旧)、
   gitea_unlink_repo 解绑顺带清理 Gitea 侧 hook
G5 治理面板:GiteaPanel——实例管理(添加/测试/删除)、当前项目三种绑定方式、
   webhook 注册与可复制回调地址、全部绑定概览

依赖:新增 hmac + sha2;project_id 与 commit_metrics 同源(Project.id),
避免双路径冲突复发;R10 修正设计文档错误签名头

验证:cargo test 58 passed(新增 upsert 换绑重置 + hmac 正反向 + payload 解析 5 测试)、
typecheck 全绿
2026-07-02 14:22:49 +09:00