跳转至

014 · Webhook 200 但 git pull 失败(HOME 与 safe.directory)

问题现象

Gitea Webhook Delivery 200,但 notes 内容未更新;journalctl -u webhook-mkdocs 可见 fatal: $HOME not setdubious ownership

排查过程

  • 对比 手动 shell 执行 /opt/rebuild-notes.shsystemd 服务 执行的环境差异。
  • 检查 git config --show-origin safe.directory 是否覆盖工作副本与裸库路径。

根因

  1. adnanh/webhook 触发的子进程 无登录环境git 需要 HOME
  2. root/服务用户 操作 Gitea 数据目录触发 dubious ownership(与工单 002 同源)。

改进计划

  • webhook-mkdocs.service[Service] 增加 Environment=HOME=/root(按实际运行用户调整)。
  • git config --global --add safe.directory 列出所有相关绝对路径。
  • systemctl restart webhook-mkdocscurl 本地钩子 再验一条完整日志。

经验教训

「服务里跑脚本」必须 单独试跑,不能假设与 SSH 会话等价;Git 安全策略在自动化里高频踩雷。