| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f2a674de3343d5031dee856edd261194709b727f","after":"4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/f2a674de3343d5031dee856edd261194709b727f...4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","commits":[{"id":"4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","message":"Expand governance controls and cross-layer runtime validation\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-27T06:17:02-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".dockerignore","Dockerfile","apps/api-fastify/prisma/migrations/20260827120000_add_knowledge_index_retry/migration.sql","apps/api-fastify/prisma/migrations/20260827150000_add_knowledge_chunks/migration.sql","apps/api-fastify/src/modules/knowledge/knowledge-indexer.ts","apps/api-fastify/src/plugins/api-error-handler.ts","apps/api-fastify/src/plugins/auth.ts","apps/api-fastify/test/auth.jwt.acceptance.test.ts","apps/api-fastify/test/fixtures/outbox-multiprocess-worker.ts","apps/api-fastify/test/health.degraded.test.ts","apps/api-fastify/test/http-rate-limit.redis.test.ts","apps/api-fastify/test/job.failed.exhaustion.test.ts","apps/api-fastify/test/knowledge-index.retry.test.ts","apps/api-fastify/test/observability.otlp.test.ts","apps/api-fastify/test/outbox.lifecycle.test.ts","apps/api-fastify/test/outbox.multiprocess.test.ts","apps/api-nestjs/prisma/migrations/20260827120000_add_knowledge_index_retry/migration.sql","apps/api-nestjs/prisma/migrations/20260827150000_add_knowledge_chunks/migration.sql","apps/api-nestjs/src/auth/auth-request.ts","apps/api-nestjs/src/auth/auth.module.ts","apps/api-nestjs/src/auth/auth.service.ts","apps/api-nestjs/src/auth/authentication.guard.ts","apps/api-nestjs/src/common/api-exception.filter.ts","apps/api-nestjs/src/events/dead-letter-replay.ts","apps/api-nestjs/src/knowledge/knowledge-index.service.ts","apps/api-nestjs/src/observability/observability.service.ts","apps/api-nestjs/src/ops/replay-dead-letter.ts","apps/api-nestjs/test/auth.jwt.acceptance.test.ts","apps/api-nestjs/test/backend.behavior.parity.test.ts","apps/api-nestjs/test/health.degraded.test.ts","apps/api-nestjs/test/job.failed.exhaustion.test.ts","apps/api-nestjs/test/knowledge-index.retry.test.ts","apps/api-nestjs/test/observability.otlp.test.ts","apps/api-nestjs/test/outbox.replay.test.ts","apps/api-nestjs/vitest.parity.config.ts","apps/web/next.config.mjs","compose.production.yml","docs/outbox-operations.md","docs/production-operations.md","packages/auth/package.json","packages/auth/src/auth.test.ts","packages/auth/src/http-rate-limit.ts","packages/auth/src/index.ts","packages/auth/tsconfig.json","packages/contracts/src/knowledge-index.test.ts","packages/contracts/src/redis-connection.test.ts","packages/contracts/src/redis-connection.ts","packages/knowledge-retrieval/src/indexing.test.ts","packages/knowledge-retrieval/src/indexing.ts","packages/observability/package.json","packages/observability/src/index.ts","packages/observability/src/runtime.test.ts","packages/observability/src/runtime.ts","packages/observability/tsconfig.json","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260827140000_add_knowledge_index_retry.sql","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260827150000_add_knowledge_chunks.sql","products/juhai.knowledgecloud/src/indexing.ts","reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/disaster-recovery.latest.json","reports/knowledge-index.latest.json","reports/observability.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-failure-coverage.latest.json","scripts/check-agent-skill-sync.mjs","scripts/check-auth-governance.mjs","scripts/check-backend-behavior-parity.mjs","scripts/check-container-acceptance.mjs","scripts/check-disaster-recovery.mjs","scripts/check-knowledge-index-governance.mjs","scripts/check-observability-governance.mjs","scripts/check-outbox-operations.mjs","scripts/check-production-operations.mjs","scripts/check-report-provenance.mjs","scripts/check-runtime-failure-coverage.mjs","scripts/lib/governance-baseline.mjs"],"removed":["apps/web/next.config.ts"],"modified":[".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.module.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/knowledge.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/components/RealtimeBar.tsx","apps/web/src/features/knowledge/api/knowledge-api.ts","apps/web/src/features/knowledge/components/KnowledgeWorkbench.tsx","apps/web/src/features/knowledge/hooks/use-knowledge.ts","apps/web/src/store/realtime.ts","docs/README.md","docs/adr/0009-dual-backend-governance-parity.md","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/migration-playbook.md","docs/standards/database-standard.md","governance.registry.json","governance.registry.schema.json","kernel.products.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/knowledge-retrieval.test.ts","packages/contracts/src/knowledge.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/tsconfig.json","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts","pnpm-lock.yaml","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/retrieval.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-live.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-migrations.mjs","scripts/check-os-product.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","turbo.json"]}],"total_commits":0,"head_commit":{"id":"4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","message":"Expand governance controls and cross-layer runtime validation\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-27T06:17:02-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".dockerignore","Dockerfile","apps/api-fastify/prisma/migrations/20260827120000_add_knowledge_index_retry/migration.sql","apps/api-fastify/prisma/migrations/20260827150000_add_knowledge_chunks/migration.sql","apps/api-fastify/src/modules/knowledge/knowledge-indexer.ts","apps/api-fastify/src/plugins/api-error-handler.ts","apps/api-fastify/src/plugins/auth.ts","apps/api-fastify/test/auth.jwt.acceptance.test.ts","apps/api-fastify/test/fixtures/outbox-multiprocess-worker.ts","apps/api-fastify/test/health.degraded.test.ts","apps/api-fastify/test/http-rate-limit.redis.test.ts","apps/api-fastify/test/job.failed.exhaustion.test.ts","apps/api-fastify/test/knowledge-index.retry.test.ts","apps/api-fastify/test/observability.otlp.test.ts","apps/api-fastify/test/outbox.lifecycle.test.ts","apps/api-fastify/test/outbox.multiprocess.test.ts","apps/api-nestjs/prisma/migrations/20260827120000_add_knowledge_index_retry/migration.sql","apps/api-nestjs/prisma/migrations/20260827150000_add_knowledge_chunks/migration.sql","apps/api-nestjs/src/auth/auth-request.ts","apps/api-nestjs/src/auth/auth.module.ts","apps/api-nestjs/src/auth/auth.service.ts","apps/api-nestjs/src/auth/authentication.guard.ts","apps/api-nestjs/src/common/api-exception.filter.ts","apps/api-nestjs/src/events/dead-letter-replay.ts","apps/api-nestjs/src/knowledge/knowledge-index.service.ts","apps/api-nestjs/src/observability/observability.service.ts","apps/api-nestjs/src/ops/replay-dead-letter.ts","apps/api-nestjs/test/auth.jwt.acceptance.test.ts","apps/api-nestjs/test/backend.behavior.parity.test.ts","apps/api-nestjs/test/health.degraded.test.ts","apps/api-nestjs/test/job.failed.exhaustion.test.ts","apps/api-nestjs/test/knowledge-index.retry.test.ts","apps/api-nestjs/test/observability.otlp.test.ts","apps/api-nestjs/test/outbox.replay.test.ts","apps/api-nestjs/vitest.parity.config.ts","apps/web/next.config.mjs","compose.production.yml","docs/outbox-operations.md","docs/production-operations.md","packages/auth/package.json","packages/auth/src/auth.test.ts","packages/auth/src/http-rate-limit.ts","packages/auth/src/index.ts","packages/auth/tsconfig.json","packages/contracts/src/knowledge-index.test.ts","packages/contracts/src/redis-connection.test.ts","packages/contracts/src/redis-connection.ts","packages/knowledge-retrieval/src/indexing.test.ts","packages/knowledge-retrieval/src/indexing.ts","packages/observability/package.json","packages/observability/src/index.ts","packages/observability/src/runtime.test.ts","packages/observability/src/runtime.ts","packages/observability/tsconfig.json","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260827140000_add_knowledge_index_retry.sql","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260827150000_add_knowledge_chunks.sql","products/juhai.knowledgecloud/src/indexing.ts","reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/disaster-recovery.latest.json","reports/knowledge-index.latest.json","reports/observability.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-failure-coverage.latest.json","scripts/check-agent-skill-sync.mjs","scripts/check-auth-governance.mjs","scripts/check-backend-behavior-parity.mjs","scripts/check-container-acceptance.mjs","scripts/check-disaster-recovery.mjs","scripts/check-knowledge-index-governance.mjs","scripts/check-observability-governance.mjs","scripts/check-outbox-operations.mjs","scripts/check-production-operations.mjs","scripts/check-report-provenance.mjs","scripts/check-runtime-failure-coverage.mjs","scripts/lib/governance-baseline.mjs"],"removed":["apps/web/next.config.ts"],"modified":[".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.module.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/knowledge.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/components/RealtimeBar.tsx","apps/web/src/features/knowledge/api/knowledge-api.ts","apps/web/src/features/knowledge/components/KnowledgeWorkbench.tsx","apps/web/src/features/knowledge/hooks/use-knowledge.ts","apps/web/src/store/realtime.ts","docs/README.md","docs/adr/0009-dual-backend-governance-parity.md","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/migration-playbook.md","docs/standards/database-standard.md","governance.registry.json","governance.registry.schema.json","kernel.products.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/knowledge-retrieval.test.ts","packages/contracts/src/knowledge.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/tsconfig.json","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts","pnpm-lock.yaml","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/retrieval.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-live.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-migrations.mjs","scripts/check-os-product.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","turbo.json"]},"repository":{"id":84,"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":"juhai-knowledge-cloud","full_name":"luoanwu/juhai-knowledge-cloud","description":"巨嗨知识云:受治理的知识唯一真源与混合证据检索","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":698,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:45:53+08:00","updated_at":"2026-08-26T09:47:06+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":true,"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"}}... |