| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"624893ef324e57874ecb721dfd5539eb58d49b8e","after":"40dae5944f158653af8288a3f38b6c97e8ce9f06","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/624893ef324e57874ecb721dfd5539eb58d49b8e...40dae5944f158653af8288a3f38b6c97e8ce9f06","commits":[{"id":"40dae5944f158653af8288a3f38b6c97e8ce9f06","message":"feat: 单机 Docker 生产部署 + 治理基线对齐 (#18)\n\nfeat: 单机 Docker 生产部署 + 治理基线对齐","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/40dae5944f158653af8288a3f38b6c97e8ce9f06","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-04-02T22:53:05+08:00","added":[".dockerignore.local","backend/Dockerfile.local","deploy/ssl/.gitkeep","docker-compose.local-prod.yml","frontend/Dockerfile.local"],"removed":[],"modified":[".gitignore","backend/package.json","backend/prisma/schema/_base.prisma","pnpm-lock.yaml"]},{"id":"588c47ea1f151f20d7e919cd87a5b07385b02022","message":"chore: 将 .env.production 加入 .gitignore 防止密钥泄露\n\nhttps://claude.ai/code/session_0178CfAo3ibEjsJuMqDCHR7X\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/588c47ea1f151f20d7e919cd87a5b07385b02022","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-04-02T14:47:51Z","added":[],"removed":[],"modified":[".gitignore"]},{"id":"3b9130b7e0040b49d5bc08307c9e050175994903","message":"feat: 单机 Docker 生产部署成功 - 全套本地构建方案\n\n新增本地部署配套文件:\n- docker-compose.local-prod.yml: 本地单机生产编排(pgvector + apache/kafka + minio + api + frontend + nginx)\n- backend/Dockerfile.local: 后端本地构建镜像(tsx 运行源码,避免路径别名问题)\n- frontend/Dockerfile.local: 前端本地构建镜像\n- .dockerignore.local: 本地构建专用忽略规则(保留 dist/node_modules)\n\n修改:\n- backend/prisma/schema/_base.prisma: 添加 binaryTargets linux-musl-openssl-3.0.x(Alpine 容器支持)\n\n部署验证通过:\n- PostgreSQL (pgvector:pg16) + Redis + Kafka + MinIO + API + Frontend + Nginx 全部在线\n- 135+ 数据库迁移全部应用成功\n- API /health 返回 {\"status\":\"ok\"}\n- Nginx HTTP→HTTPS 重定向正常,SSL 自签名证书工作\n\nhttps://claude.ai/code/session_0178CfAo3ibEjsJuMqDCHR7X\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3b9130b7e0040b49d5bc08307c9e050175994903","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-04-02T14:46:47Z","added":[".dockerignore.local","backend/Dockerfile.local","docker-compose.local-prod.yml","frontend/Dockerfile.local"],"removed":[],"modified":["backend/prisma/schema/_base.prisma"]},{"id":"a5244b9fafc440f46250c8a1b72b7fea82d6d1ef","message":"chore: 部署准备 - 补齐 deploy/ssl 目录 + 修复 fast-xml-parser 缺失依赖\n\n- 创建 deploy/ssl/.gitkeep,确保 Nginx 生产环境 SSL 挂载目录存在\n- 添加 fast-xml-parser 依赖,修复微信企业号 webhook 模块的类型错误\n- 后端 tsc 0 错误 / 前端 vue-tsc 0 错误,类型检查双清零\n\nhttps://claude.ai/code/session_0178CfAo3ibEjsJuMqDCHR7X\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a5244b9fafc440f46250c8a1b72b7fea82d6d1ef","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-04-02T14:04:59Z","added":["deploy/ssl/.gitkeep"],"removed":[],"modified":["backend/package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"40dae5944f158653af8288a3f38b6c97e8ce9f06","message":"feat: 单机 Docker 生产部署 + 治理基线对齐 (#18)\n\nfeat: 单机 Docker 生产部署 + 治理基线对齐","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/40dae5944f158653af8288a3f38b6c97e8ce9f06","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-04-02T22:53:05+08:00","added":[".dockerignore.local","backend/Dockerfile.local","deploy/ssl/.gitkeep","docker-compose.local-prod.yml","frontend/Dockerfile.local"],"removed":[],"modified":[".gitignore","backend/package.json","backend/prisma/schema/_base.prisma","pnpm-lock.yaml"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}... |