| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5cb2f1cc2f9953d47fa0bcfac541400d01603f78","after":"3cea10da5556cec346fbdecf5255ad38fc2bb92a","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/5cb2f1cc2f9953d47fa0bcfac541400d01603f78...3cea10da5556cec346fbdecf5255ad38fc2bb92a","commits":[{"id":"3cea10da5556cec346fbdecf5255ad38fc2bb92a","message":"feat(governance): harden runtime workflows and supply chain\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3cea10da5556cec346fbdecf5255ad38fc2bb92a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:17:12-07:00","added":[".github/dependabot.yml",".npmrc","apps/api-fastify/prisma/migrations/20260919000000_outbox_pending_claim_index/migration.sql","apps/api-fastify/prisma/migrations/20260920000000_outbox_pending_claim_partial_index/migration.sql","apps/api-fastify/prisma/migrations/20260921000000_drop_outbox_pending_claim_intermediate_index/migration.sql","apps/api-fastify/prisma/migrations/20260922000000_outcome_attribution_relation/migration.sql","apps/api-fastify/test/http-limits.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260919000000_outbox_pending_claim_index/migration.sql","apps/api-nestjs/prisma/migrations/20260920000000_outbox_pending_claim_partial_index/migration.sql","apps/api-nestjs/prisma/migrations/20260921000000_drop_outbox_pending_claim_intermediate_index/migration.sql","apps/api-nestjs/prisma/migrations/20260922000000_outcome_attribution_relation/migration.sql","apps/api-nestjs/test/http-limits.acceptance.test.ts","apps/web/public/favicon.svg","apps/web/src/app/error.tsx","apps/web/src/app/not-found.tsx","apps/web/src/components/workbench/QueryErrorHost.tsx","apps/web/src/features/actors/components/ActorBenchmarkPanel.tsx","apps/web/src/lib/query-errors.ts","packages/contracts/src/http.test.ts","packages/contracts/src/http.ts","packages/contracts/src/pagination.test.ts","packages/contracts/src/pagination.ts","reports/alertmanager-image.latest.json","reports/image-vulnerabilities.latest.json","reports/postgres-image.latest.json","scripts/check-alertmanager-image.mjs","scripts/check-image-vulnerabilities.mjs","scripts/check-postgres-image.mjs","scripts/lib/node-version-guard.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".gitignore","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/modules/actor-events.service.ts","apps/api-fastify/src/modules/actors.ts","apps/api-fastify/src/modules/llm-governance.service.ts","apps/api-fastify/src/modules/llm-invocation-ledger.ts","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/modules/work/errors.ts","apps/api-fastify/src/modules/work/projects.service.ts","apps/api-fastify/src/modules/work/task-events.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/llm-governance.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/auth.acceptance.test.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/actors/actor-events.service.ts","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.service.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/llm-governance/llm-governance.controller.ts","apps/api-nestjs/src/llm-governance/llm-governance.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/src/queue/llm-invocation-ledger.service.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/src/work/projects.controller.ts","apps/api-nestjs/src/work/projects.service.ts","apps/api-nestjs/src/work/task-events.service.ts","apps/api-nestjs/src/work/tasks.controller.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/auth.acceptance.test.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/src/app/layout.tsx","apps/web/src/components/kernel/KernelWorkspaceShell.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/AttentionInbox.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/components/workbench/Timeline.tsx","apps/web/src/components/workbench/useTaskActions.ts","apps/web/src/features/actors/api/actors-api.ts","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx","apps/web/src/features/actors/hooks/use-actor-mutations.ts","apps/web/src/features/actors/hooks/use-actors.ts","apps/web/src/features/llm-governance/api/llm-governance-api.ts","apps/web/src/features/llm-governance/components/LlmInvocationReconciliationPanel.tsx","apps/web/src/features/llm-governance/hooks/use-llm-invocations.ts","apps/web/src/features/tools/hooks/use-tools.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/state-theme.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alerts.test.yml","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/nginx.conf.template","deploy/production/prometheus.yml","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/llm-execution-blueprint.md","docs/domain/owner-matrix.md","docs/domain/tool-execution-blueprint.md","docs/domain/work-blueprint.md","docs/governance-experience.md","docs/operations/production-runbook.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","package.json","packages/contracts/package.json","packages/contracts/src/actor.test.ts","packages/contracts/src/actor.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/llm-governance.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime.ts","packages/contracts/src/task.ts","packages/contracts/src/tenant.ts","packages/contracts/src/work.test.ts","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","packages/product-runtime/src/product-sql.test.ts","packages/product-runtime/src/product-sql.ts","pnpm-lock.yaml","pnpm-workspace.yaml","reports/access-audit.latest.json","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/baseline.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/redis-auth-live.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/trace-backend.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-access-audit.mjs","scripts/check-all.mjs","scripts/check-auth-startup.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-operations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-trace-backend.mjs","scripts/check-ui-all.mjs","scripts/governance-report.mjs","scripts/ops/backup.sh","scripts/ops/trace-storage-metrics.mjs"]}],"total_commits":0,"head_commit":{"id":"3cea10da5556cec346fbdecf5255ad38fc2bb92a","message":"feat(governance): harden runtime workflows and supply chain\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3cea10da5556cec346fbdecf5255ad38fc2bb92a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:17:12-07:00","added":[".github/dependabot.yml",".npmrc","apps/api-fastify/prisma/migrations/20260919000000_outbox_pending_claim_index/migration.sql","apps/api-fastify/prisma/migrations/20260920000000_outbox_pending_claim_partial_index/migration.sql","apps/api-fastify/prisma/migrations/20260921000000_drop_outbox_pending_claim_intermediate_index/migration.sql","apps/api-fastify/prisma/migrations/20260922000000_outcome_attribution_relation/migration.sql","apps/api-fastify/test/http-limits.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260919000000_outbox_pending_claim_index/migration.sql","apps/api-nestjs/prisma/migrations/20260920000000_outbox_pending_claim_partial_index/migration.sql","apps/api-nestjs/prisma/migrations/20260921000000_drop_outbox_pending_claim_intermediate_index/migration.sql","apps/api-nestjs/prisma/migrations/20260922000000_outcome_attribution_relation/migration.sql","apps/api-nestjs/test/http-limits.acceptance.test.ts","apps/web/public/favicon.svg","apps/web/src/app/error.tsx","apps/web/src/app/not-found.tsx","apps/web/src/components/workbench/QueryErrorHost.tsx","apps/web/src/features/actors/components/ActorBenchmarkPanel.tsx","apps/web/src/lib/query-errors.ts","packages/contracts/src/http.test.ts","packages/contracts/src/http.ts","packages/contracts/src/pagination.test.ts","packages/contracts/src/pagination.ts","reports/alertmanager-image.latest.json","reports/image-vulnerabilities.latest.json","reports/postgres-image.latest.json","scripts/check-alertmanager-image.mjs","scripts/check-image-vulnerabilities.mjs","scripts/check-postgres-image.mjs","scripts/lib/node-version-guard.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".gitignore","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/modules/actor-events.service.ts","apps/api-fastify/src/modules/actors.ts","apps/api-fastify/src/modules/llm-governance.service.ts","apps/api-fastify/src/modules/llm-invocation-ledger.ts","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/modules/work/errors.ts","apps/api-fastify/src/modules/work/projects.service.ts","apps/api-fastify/src/modules/work/task-events.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/llm-governance.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/auth.acceptance.test.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/actors/actor-events.service.ts","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.service.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/llm-governance/llm-governance.controller.ts","apps/api-nestjs/src/llm-governance/llm-governance.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/src/queue/llm-invocation-ledger.service.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/src/work/projects.controller.ts","apps/api-nestjs/src/work/projects.service.ts","apps/api-nestjs/src/work/task-events.service.ts","apps/api-nestjs/src/work/tasks.controller.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/auth.acceptance.test.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/src/app/layout.tsx","apps/web/src/components/kernel/KernelWorkspaceShell.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/AttentionInbox.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/components/workbench/Timeline.tsx","apps/web/src/components/workbench/useTaskActions.ts","apps/web/src/features/actors/api/actors-api.ts","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx","apps/web/src/features/actors/hooks/use-actor-mutations.ts","apps/web/src/features/actors/hooks/use-actors.ts","apps/web/src/features/llm-governance/api/llm-governance-api.ts","apps/web/src/features/llm-governance/components/LlmInvocationReconciliationPanel.tsx","apps/web/src/features/llm-governance/hooks/use-llm-invocations.ts","apps/web/src/features/tools/hooks/use-tools.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/state-theme.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alerts.test.yml","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/nginx.conf.template","deploy/production/prometheus.yml","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/llm-execution-blueprint.md","docs/domain/owner-matrix.md","docs/domain/tool-execution-blueprint.md","docs/domain/work-blueprint.md","docs/governance-experience.md","docs/operations/production-runbook.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","package.json","packages/contracts/package.json","packages/contracts/src/actor.test.ts","packages/contracts/src/actor.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/llm-governance.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime.ts","packages/contracts/src/task.ts","packages/contracts/src/tenant.ts","packages/contracts/src/work.test.ts","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","packages/product-runtime/src/product-sql.test.ts","packages/product-runtime/src/product-sql.ts","pnpm-lock.yaml","pnpm-workspace.yaml","reports/access-audit.latest.json","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/baseline.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/redis-auth-live.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/trace-backend.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-access-audit.mjs","scripts/check-all.mjs","scripts/check-auth-startup.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-operations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-trace-backend.mjs","scripts/check-ui-all.mjs","scripts/governance-report.mjs","scripts/ops/backup.sh","scripts/ops/trace-storage-metrics.mjs"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":73053,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-08-25T12:21:18+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"}}... |