Files
a-share-analysis/docs/features/GOV-004-mandatory-gitea-push/prd.md
T

2.1 KiB

提交后强制推送 Gitea PRD

  • 功能编号:GOV-004
  • PRD 版本:0.1
  • 状态:approved
  • 日期:2026-08-12

问题

项目此前只要求保存本地提交,是否推送需要逐次确认。这会导致本地版本与 Gitea 长期不一致,使远程备份、跨设备读取、历史审阅和版本回退缺少可靠依据。

目标

  • 每次验证通过的本地提交立即推送当前分支。
  • 本次创建的新标签在分支推送成功后单独推送。
  • 推送失败时任务保持未完成,并提供安全、可审计的重试路径。
  • 让提交、远程分支、标签和功能档案保持可核对的一致关系。

非目标

  • 不自动推送其他本地分支或非本次创建的标签。
  • 不使用强推,不自动合并、rebase 或覆盖未知远程提交。
  • 不新增 GitHub、CI、Webhook 或 Gitea 服务端配置。
  • 不修改全局 Git 配置,不影响其他项目。

用户流程

开发者完成验证与 Review 后创建中文提交,随即把当前分支推送到项目 origin;若同时发布版本,则精确推送新标签。系统核对远程 SHA 并在功能档案中记录结果。任何环节失败都保留本地状态,解决原因后重试,不能对外宣称完成。

验收标准

  • 现行规范明确普通提交只推当前分支,新标签只推本次创建的标签。
  • 现行规范明确推送成功属于完成定义,失败必须留痕并阻断完成。
  • 现行规范禁止 --force--force-with-lease、自动覆盖或自动改写远程历史。
  • origin/main 与最终本地 main SHA 一致。
  • 既有 v0.0.0v0.0.1v0.0.2 以及新 v0.0.3 标签均能从远程读取并对应本地标签提交。
  • 凭据继续由 macOS Keychain 管理,仓库和提交历史无密码或令牌。
  • 全局 Git 配置保持不变,治理门禁和 GitNexus 变更检测通过。

风险

  • 远程网络或认证故障会延迟任务完成,但不会破坏本地提交。
  • 分支保护或远程出现未知提交时可能拒绝推送;必须停下检查,不得绕过保护。
  • 将所有标签批量推送可能发布未批准标签,因此只允许精确推送指定标签。