Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces the initial implementation of the Aurora Science Hub “Integrations” repository, focused on NOAA space-weather data, along with tests, benchmarks, and build/packaging infrastructure.
Changes:
- Add a
Noaalibrary with ACE, DSCOVR, and Kp Index clients, parsers, and response models plus DI registration and options. - Add xUnit-based unit tests and BenchmarkDotNet benchmarks for all text/JSON parsing logic using embedded NOAA sample data.
- Set up solution-wide .NET 10 targeting, central package management, CI workflow, packaging metadata, and documentation/license files.
Reviewed changes
Copilot reviewed 67 out of 71 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/UnitTests/Utils/EmbeddedResourceDataAttribute.cs | Adds a custom xUnit v3 DataAttribute to load test data from embedded resources for parameterized tests. |
| tests/UnitTests/Usings.cs | Enables global xUnit usings for the unit test project. |
| tests/UnitTests/UnitTests.csproj | Configures the unit test project, references the Noaa project, and embeds ACE/DSCOVR/KpIndex sample data as resources. |
| tests/UnitTests/Noaa/KpIndex/Samples/KpIndexNowcastSample.json | Provides sample NOAA Kp-index nowcast JSON for parser tests. |
| tests/UnitTests/Noaa/KpIndex/Samples/KpIndex3DayForecastSample.json | Provides sample NOAA 3‑day Kp-index forecast JSON for parser tests. |
| tests/UnitTests/Noaa/KpIndex/Samples/KpIndex27DayForecastSample.txt | Provides sample NOAA 27‑day outlook text data for parser tests. |
| tests/UnitTests/Noaa/KpIndex/KpIndexNowcastDataParserTests.cs | Verifies KpIndexNowcastDataParser maps JSON to KpIndexNowcastResponse records as expected. |
| tests/UnitTests/Noaa/KpIndex/KpIndex3DayDataParserTests.cs | Verifies KpIndex3DayDataParser maps JSON to KpIndex3DayResponse records as expected. |
| tests/UnitTests/Noaa/KpIndex/KpIndex27DayDataParserTests.cs | Verifies KpIndex27DayDataParser parses text rows into KpIndex27DayResponse records. |
| tests/UnitTests/Noaa/Dscovr/SolarWindPlasmaDataParserTests.cs | Tests DSCOVR solar-wind plasma JSON parsing into SolarWindPlasmaRecord. |
| tests/UnitTests/Noaa/Dscovr/Samples/DscovrSolarWindPlasmaSample.json | Sample DSCOVR solar-wind plasma JSON for unit tests. |
| tests/UnitTests/Noaa/Dscovr/Samples/DscovrMagnetometerSample.json | Sample DSCOVR magnetometer JSON for unit tests. |
| tests/UnitTests/Noaa/Dscovr/MagnetometerDataParserTests.cs | Tests DSCOVR magnetometer JSON parsing into MagnetometerRecord. |
| tests/UnitTests/Noaa/Ace/SolarWindPlasmaDataParserTests.cs | Tests ACE SWE solar-wind plasma text parsing into SolarWindPlasmaRecord. |
| tests/UnitTests/Noaa/Ace/Samples/AceSwepamSample.txt | Sample ACE SWE solar-wind plasma text for unit tests. |
| tests/UnitTests/Noaa/Ace/Samples/AceMagnetometerSample.txt | Sample ACE magnetometer text for unit tests. |
| tests/UnitTests/Noaa/Ace/MagnetometerDataParserTests.cs | Tests ACE magnetometer text parsing into MagnetometerRecord. |
| tests/Directory.Build.props | Establishes common test-project settings and test-related package references (xUnit v3, Moq, Shouldly, coverlet). |
| src/Noaa/ServiceCollectionExtensions.cs | Adds AddNoaaClients DI extension to register ACE, DSCOVR, and KpIndex HTTP clients and bind NoaaClientOptions. |
| src/Noaa/NoaaClientOptions.cs | Defines configuration options for NOAA clients, including a required ServerUrl. |
| src/Noaa/Noaa.csproj | Creates the AuroraScienceHub.Integrations.Noaa project and references shared framework packages and HTTP/DI abstractions. |
| src/Noaa/KpIndex/Responses/KpIndexNowcastResponse.cs | Introduces a record type representing a Kp-index nowcast row. |
| src/Noaa/KpIndex/Responses/KpIndex3DayResponse.cs | Introduces a record type representing a 3‑day Kp-index forecast row. |
| src/Noaa/KpIndex/Responses/KpIndex27DayResponse.cs | Introduces a record type representing a 27‑day Kp-index forecast row. |
| src/Noaa/KpIndex/KpIndexClient.cs | Implements IKpIndexClient using HttpClient and the KpIndex parsers to fetch 27‑day, 3‑day, and nowcast data. |
| src/Noaa/KpIndex/IKpIndexClient.cs | Defines the KpIndex client interface for 27‑day, 3‑day, and nowcast retrieval. |
| src/Noaa/KpIndex/Extensions/KpIndexNowcastDataParser.cs | Parses Kp-index nowcast JSON into KpIndexNowcastResponse records. |
| src/Noaa/KpIndex/Extensions/KpIndex3DayDataParser.cs | Parses 3‑day Kp-index JSON into KpIndex3DayResponse records. |
| src/Noaa/KpIndex/Extensions/KpIndex27DayDataParser.cs | Parses 27‑day outlook text into KpIndex27DayResponse records from line-based data. |
| src/Noaa/Dscovr/Responses/SolarWindPlasmaRecord.cs | Adds a record representing DSCOVR solar-wind plasma data points. |
| src/Noaa/Dscovr/Responses/MagnetometerRecord.cs | Adds a record representing DSCOVR magnetometer data points. |
| src/Noaa/Dscovr/IDscovrClient.cs | Defines the DSCOVR client interface for magnetometer and plasma data over several time windows. |
| src/Noaa/Dscovr/Extensions/SolarWindPlasmaDataParser.cs | Parses DSCOVR solar-wind plasma JSON arrays into SolarWindPlasmaRecord instances. |
| src/Noaa/Dscovr/Extensions/MagnetometerDataParser.cs | Parses DSCOVR magnetometer JSON arrays into MagnetometerRecord instances. |
| src/Noaa/Dscovr/DscovrClient.cs | Implements IDscovrClient to call NOAA DSCOVR endpoints and feed responses through the parsers. |
| src/Noaa/Ace/Responses/SolarWindPlasmaRecord.cs | Adds a record representing ACE SWE solar-wind plasma data (including status and optional numeric values). |
| src/Noaa/Ace/Responses/MagnetometerRecord.cs | Adds a record representing ACE magnetometer data (including status and optional numeric values). |
| src/Noaa/Ace/IAceClient.cs | Defines the ACE client interface for magnetometer and SWE plasma (“Swepam”) data. |
| src/Noaa/Ace/Extensions/SolarWindPlasmaDataParser.cs | Parses ACE SWE solar-wind plasma text lines into SolarWindPlasmaRecord instances. |
| src/Noaa/Ace/Extensions/MagnetometerDataParser.cs | Parses ACE magnetometer text lines into MagnetometerRecord instances. |
| src/Noaa/Ace/AceClient.cs | Implements IAceClient to fetch ACE text feeds and parse them via the ACE parsers. |
| src/Directory.Build.props | Adds per‑src settings (packable, package metadata, README/icon inclusion) for library projects. |
| package.json | Adds a minimal Node configuration with a madr dependency (likely for decision records or docs tooling). |
| global.json | Pins the .NET SDK to version 10.0.100 with patch roll-forward. |
| docs/logo/Fw_icon.png | Adds a packaged icon used by NuGet packaging and README branding. |
| benchmarks/AuroraScienceHub.Integrations.Benchmarks/Program.cs | Provides the BenchmarkDotNet entrypoint to run all benchmarks in the benchmarks assembly. |
| benchmarks/.../Noaa/Dscovr/Samples/DscovrSolarWindPlasmaSample.json | Large DSCOVR solar-wind plasma JSON sample for performance benchmarks. |
| benchmarks/.../Noaa/Dscovr/Samples/DscovrMagnetometerSample.json | Large DSCOVR magnetometer JSON sample for performance benchmarks. |
| benchmarks/.../Noaa/Dscovr/DscovrSolarWindPlasmaDataParserBenchmark.cs | Benchmarks the DSCOVR solar-wind plasma JSON parser using embedded sample data. |
| benchmarks/.../Noaa/Dscovr/DscovrMagnetometerDataParserBenchmark.cs | Benchmarks the DSCOVR magnetometer JSON parser using embedded sample data. |
| benchmarks/.../Noaa/Ace/Samples/AceSwepamSample.txt | Large ACE SWE solar-wind plasma text sample for benchmarks. |
| benchmarks/.../Noaa/Ace/Samples/AceMagnetometerSample.txt | Large ACE magnetometer text sample for benchmarks. |
| benchmarks/.../Noaa/Ace/AceSolarWindPlasmaDataParserBenchmark.cs | Benchmarks the ACE SWE solar-wind plasma text parser. |
| benchmarks/.../Noaa/Ace/AceMagnetometerDataParserBenchmark.cs | Benchmarks the ACE magnetometer text parser. |
| benchmarks/AuroraScienceHub.Integrations.Benchmarks/AuroraScienceHub.Integrations.Benchmarks.csproj | Configures the benchmarks project, embedding benchmark samples and referencing BenchmarkDotNet and the Noaa library. |
| README.md | Documents the repository purpose, packages, dev workflow, and test approach (with some version/tooling mismatches noted). |
| PackageLicenses.txt | Aggregates third-party package licenses for compliance and distribution. |
| NuGet.Config | Restricts NuGet sources to nuget.org and the AuroraScienceHub GitHub feed, with source mapping for AuroraScienceHub packages. |
| LICENSE | Adds MIT license text with project copyright. |
| Integrations.slnx | Provides the solution file grouping src, tests, benchmarks, and CI workflow for IDEs. |
| Directory.Packages.props | Centralizes all package versions (framework utilities, analyzers, test packages, BenchmarkDotNet, etc.). |
| Directory.Build.targets | Adds common build/pack settings (namespace root, repository metadata, license expression, tags) for packable projects. |
| .gitignore | Defines Git ignore rules for .NET/VS, benchmarks, and tooling artifacts. |
| .github/workflows/dotnet.yml | Adds CI workflow for restore, build, test, pack, and publishing to NuGet and GitHub Packages with versioning logic. |
| .gitattributes | Configures text normalization and C# diff behavior for Git. |
| .editorconfig | Establishes code-style conventions (spacing, naming, analyzers) across the repo. |
| .dockerignore | Excludes dev-only and build artifacts from Docker build contexts. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 67 out of 71 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 72 out of 76 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.