feat: add Discord NetCord gateway worker
PR Checks / test-and-build (pull_request) Successful in 5m46s

Add a separate GmRelay.DiscordBot worker using NetCord Gateway with startup token validation, PostgreSQL datasource registration, slash-command setup, component interaction service registration, and lifecycle logging.

Wire the Discord service through Aspire AppHost, Docker Compose, PR checks, deploy image build/push/scan/pull steps, README docs, and synchronized version 2.2.0.

Add TDD coverage for project isolation, token validation, startup wiring, runtime wiring, and version synchronization.

Bump version -> 2.2.0
This commit is contained in:
2026-05-18 16:04:31 +03:00
parent ab59d234f3
commit 05ca8061e9
22 changed files with 1864 additions and 15 deletions
+45 -4
View File
@@ -202,6 +202,36 @@
"Newtonsoft.Json": "13.0.3"
}
},
"NetCord": {
"type": "Transitive",
"resolved": "1.0.0-alpha.489",
"contentHash": "/rM73l1pwwJCWHi7YrIiSVc+GVL0lV+k+amqNJUMINjLO+c5bKWj9PoNNoMhiPZoaORO4k6Uxp8EQfoQj3AYtA=="
},
"NetCord.Hosting": {
"type": "Transitive",
"resolved": "1.0.0-alpha.489",
"contentHash": "yQcvgY3uu98ndoLXpiFhJ5kungoWVLd7xnO18GmukRPVsRzyOKgxe/Ycp8DLYTtiQG9Wyg1pV4Iv6rvo+zck4w==",
"dependencies": {
"NetCord": "1.0.0-alpha.489"
}
},
"NetCord.Hosting.Services": {
"type": "Transitive",
"resolved": "1.0.0-alpha.489",
"contentHash": "Md46+zLB9UWYLM7PVlATytkjAC9602wBNKO7m5eaBiDdEvZOPsUrR6NJJr2YtJoKjttbvhte5ayDXj8WGGsevQ==",
"dependencies": {
"NetCord.Hosting": "1.0.0-alpha.489",
"NetCord.Services": "1.0.0-alpha.489"
}
},
"NetCord.Services": {
"type": "Transitive",
"resolved": "1.0.0-alpha.489",
"contentHash": "SwG/7Khba1uRENDvG22RV/POByIwh/ZrenMrSzwoEcEYPMI5TabmEEB3ySH15XGdLcFZJEj106AlriN0kZhfFg==",
"dependencies": {
"NetCord": "1.0.0-alpha.489"
}
},
"Newtonsoft.Json": {
"type": "Transitive",
"resolved": "13.0.3",
@@ -362,13 +392,24 @@
"Aspire.Npgsql": "[13.2.2, )",
"Dapper": "[2.1.72, )",
"Dapper.AOT": "[1.0.48, )",
"GmRelay.ServiceDefaults": "[1.15.1, )",
"GmRelay.Shared": "[1.15.1, )",
"GmRelay.ServiceDefaults": "[2.1.1, )",
"GmRelay.Shared": "[2.1.1, )",
"Npgsql": "[10.0.2, )",
"Telegram.Bot": "[22.9.5.3, )",
"dbup-postgresql": "[7.0.1, )"
}
},
"gmrelay.discordbot": {
"type": "Project",
"dependencies": {
"Aspire.Npgsql": "[13.2.2, )",
"GmRelay.ServiceDefaults": "[2.1.1, )",
"GmRelay.Shared": "[2.1.1, )",
"NetCord.Hosting": "[1.0.0-alpha.489, )",
"NetCord.Hosting.Services": "[1.0.0-alpha.489, )",
"Npgsql": "[10.0.2, )"
}
},
"gmrelay.servicedefaults": {
"type": "Project",
"dependencies": {
@@ -389,8 +430,8 @@
"dependencies": {
"Aspire.Npgsql": "[13.2.2, )",
"Dapper": "[2.1.72, )",
"GmRelay.ServiceDefaults": "[1.15.1, )",
"GmRelay.Shared": "[1.15.1, )",
"GmRelay.ServiceDefaults": "[2.1.1, )",
"GmRelay.Shared": "[2.1.1, )",
"Npgsql": "[10.0.2, )",
"Telegram.Bot": "[22.9.6.1, )"
}