Sub-task of #83 (Newtonsoft.Json → System.Text.Json migration). Partially blocked on STJ-3.
Scope
Migrate the hand-written *Tasks.cs files in Fallout.Common.Tools.* that use Newtonsoft for external-API JSON parsing. These are integration glue with third-party services — each may use different Newtonsoft features.
Files (5)
src/Fallout.Common/Tools/SignPath/SignPathTasks.cs — uses JObject, JToken, JValue deep access patterns
src/Fallout.Common/Tools/Slack/SlackTasks.cs — uses utility-lib GetPropertyStringValue / GetPropertyValueOrNull (blocked on STJ-3)
src/Fallout.Common/Tools/Twitter/TwitterTasks.cs
src/Fallout.Common/Tools/OctoVersion/OctoVersionTasks.cs — uses AllWritableContractResolver (Newtonsoft-specific concept; need to decide on STJ equivalent or drop)
src/Fallout.Common/Tools/Teams/Teams.Extensions.cs
Plus src/Fallout.Common/Tools/Gitter/GitterTasks.cs — verify whether still needed (Gitter discontinued in 2024).
Per-file shape varies
These talk to live external APIs (Slack messages, SignPath signing, Twitter posts, etc.). The risk profile is "did the round-trip with the external API still work?" — only catchable by manual exercise against the real API. Worth doing one task per PR rather than batching.
Acceptance
Sub-task of #83 (Newtonsoft.Json → System.Text.Json migration). Partially blocked on STJ-3.
Scope
Migrate the hand-written
*Tasks.csfiles inFallout.Common.Tools.*that use Newtonsoft for external-API JSON parsing. These are integration glue with third-party services — each may use different Newtonsoft features.Files (5)
src/Fallout.Common/Tools/SignPath/SignPathTasks.cs— usesJObject,JToken,JValuedeep access patternssrc/Fallout.Common/Tools/Slack/SlackTasks.cs— uses utility-libGetPropertyStringValue/GetPropertyValueOrNull(blocked on STJ-3)src/Fallout.Common/Tools/Twitter/TwitterTasks.cssrc/Fallout.Common/Tools/OctoVersion/OctoVersionTasks.cs— usesAllWritableContractResolver(Newtonsoft-specific concept; need to decide on STJ equivalent or drop)src/Fallout.Common/Tools/Teams/Teams.Extensions.csPlus
src/Fallout.Common/Tools/Gitter/GitterTasks.cs— verify whether still needed (Gitter discontinued in 2024).Per-file shape varies
These talk to live external APIs (Slack messages, SignPath signing, Twitter posts, etc.). The risk profile is "did the round-trip with the external API still work?" — only catchable by manual exercise against the real API. Worth doing one task per PR rather than batching.
Acceptance
./build.ps1 Testgreen