| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"14c4cca40c3b21a5247fd9117fc9af829acc8ea7","after":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/14c4cca40c3b21a5247fd9117fc9af829acc8ea7...07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","commits":[{"id":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","message":"fix(events): close remaining partial event coverage gaps\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:48:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/ad-audiences/ad-audience.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts"]},{"id":"2bb98573012162e66541b69f713e6b469c268b2c","message":"docs(permissions): align ai docs to kebab and add 20260214 migration guide\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2bb98573012162e66541b69f713e6b469c268b2c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:38:53+08:00","added":["backend/prisma/migrations/MIGRATION_GUIDE_20260214.md"],"removed":[],"modified":["backend/prisma/migrations/DEPLOY_GUIDE.md","docs/AI-AGENT-GUIDE.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/guides/AI_AGENT_PERMISSION_SETUP_GUIDE.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md"]},{"id":"f773cce3ddbd4b1c23e4211aea0a0158da1ed047","message":"feat(db): add migration to normalize permission codes to kebab\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f773cce3ddbd4b1c23e4211aea0a0158da1ed047","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:34:44+08:00","added":["backend/prisma/migrations/20260214000003_normalize_permission_codes_kebab/migration.sql"],"removed":[],"modified":[]},{"id":"44a7486eb5e06ab7e3b26abf9d0e27c9e95eea19","message":"chore(check): enforce kebab permission naming in consistency check\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/44a7486eb5e06ab7e3b26abf9d0e27c9e95eea19","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:32:46+08:00","added":[],"removed":[],"modified":["scripts/check-consistency.ts"]},{"id":"958c331d79789ae97b222fbf14eacbcee94760b4","message":"refactor(permissions): remove _KEBAB aliases and use canonical constants\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/958c331d79789ae97b222fbf14eacbcee94760b4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:31:35+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/agent-group.routes.ts","backend/src/modules/ai-agents/ai-agent.routes.ts","backend/src/modules/lead-scoring-ai/lead-action-recommendation.routes.ts","backend/src/modules/lead-scoring-ai/lead-score-trigger.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/location-assessments/location-assessment.routes.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.routes.ts","backend/src/modules/marketing-workflows/marketing-workflow.compat.routes.ts","backend/src/modules/marketing-workflows/marketing-workflow.routes.ts","backend/src/modules/sms-marketing/sms-marketing.routes.ts","backend/src/modules/supply-chain/supplier-management.routes.ts","backend/src/modules/web-tracking/web-tracking.routes.ts","backend/src/shared/constants/permissions.ts"]}],"total_commits":0,"head_commit":{"id":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","message":"fix(events): close remaining partial event coverage gaps\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:48:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/ad-audiences/ad-audience.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts"]},"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/avatars/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":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":338848,"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,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-24T00:11:36+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":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,"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","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/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"}}... |