Skip to content

CI sync#139

Merged
dealloc merged 5 commits intomasterfrom
feature/ci-sync
Jun 12, 2025
Merged

CI sync#139
dealloc merged 5 commits intomasterfrom
feature/ci-sync

Conversation

@dealloc
Copy link
Member

@dealloc dealloc commented Jun 5, 2025

The goal of this PR is to have a periodically running CI system that performs the full sync daily/weekly/hourly

A separate CLI binary pulls in the API's sync services and runs them (once) and validates they ran to completion without any errors.
We can also have this run on any PR, allowing us to catch this category of errors much earlier than "an end user reported errors"

This was originally discussed in the Helldivers Discord

Roadmap:

  • Create CLI binary that pulls in the sync and runs it
  • Have it generate error reports
  • run CLI hourly/daily/weekly (to be discussed)
  • run CLI for every PR to validate sync

@dealloc dealloc added this to the V1 milestone Jun 5, 2025
@dealloc dealloc requested a review from a team June 5, 2025 10:23
@dealloc dealloc self-assigned this Jun 5, 2025
@dealloc dealloc added feature request This issue requests a feature that doesn't exist (yet) PR ready This issue is approved and ready to be worked on. labels Jun 5, 2025
@dealloc
Copy link
Member Author

dealloc commented Jun 5, 2025

I'm looking for feedback on viability and frequency of the tests and if I'm missing any low-hanging fruit here.

/cc @lambstream @helldivers-2/history-api @Stonemercy @sebsebmc
pinging you guys for feedback as you are most frequently impacted by the type of errors we're trying to capture here

@github-actions
Copy link

⚠️ Sync validation failed (run #3 exited with failure)

Error log
info: Helldivers.Sync.Hosted.ArrowHeadSyncService[817648142]
    sync will run every 00:00:10
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/current/WarID
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/current/WarID
info: System.Net.Http.HttpClient.SteamApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.steampowered.com/ISteamNews/GetNewsForApp/v2/?*
info: System.Net.Http.HttpClient.SteamApiService.ClientHandler[100]
    Sending HTTP request GET https://api.steampowered.com/ISteamNews/GetNewsForApp/v2/?*
info: System.Net.Http.HttpClient.SteamApiService.ClientHandler[101]
    Received HTTP response headers after 234.7197ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 278.2319ms - 200
info: System.Net.Http.HttpClient.SteamApiService.LogicalHandler[101]
    End processing HTTP request after 246.3602ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 296.1395ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/WarInfo
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/WarInfo
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 3.8699ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 5.0734ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/Stats/war/801/summary
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/Stats/war/801/summary
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 5.1495ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 6.6764ms - 200
info: Helldivers.Sync.Hosted.SteamSyncService[1220915108]
    SteamSyncService finished processing, shutting down.
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 4.0744ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 4.7363ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 6.2459ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 6.5826ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 6.7479ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 7.0373ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 15.8447ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 16.098ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 6.5517ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 6.7632ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 10.3028ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 10.3545ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 13.0171ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 13.0698ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 4.0288ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 4.7551ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/WarSeason/801/Status
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 3.5502ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 3.7859ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 7.6048ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 7.8965ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 6.8494ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 6.9058ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 5.0579ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 5.106ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 7.948ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 7.9998ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 13.2427ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 13.2973ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 5.8598ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 5.9116ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 17.3192ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 17.3934ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 4.8833ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 4.9432ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/NewsFeed/801?*
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 7.0113ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 7.073ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 2.2049ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 2.2548ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 2.3815ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 2.4304ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 2.5259ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 2.5765ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 9.2061ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 9.2677ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 3.2037ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 3.2576ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 2.3608ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 2.4116ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 5.2883ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 5.3424ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 2.6676ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 2.7171ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[100]
    Start processing HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[100]
    Sending HTTP request GET https://api.live.prod.thehelldiversgame.com/api/v2/Assignment/War/801
info: System.Net.Http.HttpClient.ArrowHeadApiService.ClientHandler[101]
    Received HTTP response headers after 17.6727ms - 200
info: System.Net.Http.HttpClient.ArrowHeadApiService.LogicalHandler[101]
    End processing HTTP request after 17.7353ms - 200
fail: Helldivers.Sync.Hosted.ArrowHeadSyncService[1968206239]
    An exception was thrown when synchronizing from ArrowHead API
    System.Exception: Testing failure
       at Helldivers.Sync.Hosted.ArrowHeadSyncService.ExecuteAsync(CancellationToken cancellationToken) in /home/runner/work/api/api/src/Helldivers-2-Sync/Hosted/ArrowHeadSyncService.cs:line 69
       at Helldivers.Sync.Hosted.ArrowHeadSyncService.ExecuteAsync(CancellationToken cancellationToken) in /home/runner/work/api/api/src/Helldivers-2-Sync/Hosted/ArrowHeadSyncService.cs:line 69
Unhandled exception. System.Exception: Testing failure
 at Helldivers.Sync.Hosted.ArrowHeadSyncService.ExecuteAsync(CancellationToken cancellationToken) in /home/runner/work/api/api/src/Helldivers-2-Sync/Hosted/ArrowHeadSyncService.cs:line 69
 at Helldivers.Sync.Hosted.ArrowHeadSyncService.ExecuteAsync(CancellationToken cancellationToken) in /home/runner/work/api/api/src/Helldivers-2-Sync/Hosted/ArrowHeadSyncService.cs:line 69
 at Program.<Main>$(String[] args) in /home/runner/work/api/api/src/Helldivers-2-CI/Program.cs:line 52
 at Program.<Main>(String[] args)

Artifacts (JSON + log) here:
https://github.com/helldivers-2/api/actions/runs/15608954486

@dealloc dealloc marked this pull request as ready for review June 12, 2025 11:15
Copy link
Contributor

@lambstream lambstream left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dealloc dealloc merged commit 43b1b84 into master Jun 12, 2025
5 checks passed
@dealloc dealloc deleted the feature/ci-sync branch June 12, 2025 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature request This issue requests a feature that doesn't exist (yet) PR ready This issue is approved and ready to be worked on.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments