Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 18, 2025

  • Rebase branch against main
  • Add missing project references for Azure IoT Hub
  • Create testcontainers-based integration tests for Azure IoT Hub
  • Update main README.md to include Azure IoT Hub package
  • Update architecture tests to include Azure IoT Hub assembly
  • Fix all pipeline errors
  • Mark PR as ready for review

Completed Tasks

Implementation:

  • Azure IoT Hub Health Check Package: Complete implementation with multiple authentication modes (ServiceProvider, DefaultAzureCredentials, ConnectionString)
  • Configuration Support: Both configuration-based and options-based setup
  • Proper Validation: Comprehensive options validation with meaningful error messages
  • Timeout Control: Configurable timeout with degraded status on timeout

Integration Tests:

  • IoTHubMockContainer.cs: Testcontainer implementation using WireMock to simulate Azure IoT Hub REST API endpoints
  • IotHubAvailabilityHealthCheckTests.cs: Integration tests that verify health check behavior
  • README.md: Documentation explaining the testcontainer approach and limitations

Documentation & Configuration:

  • README.md: Added Azure IoT Hub package to main README with proper badges and description
  • Architecture Tests: Updated HealthCheckArchitecture.cs to include Azure.IotHub assembly
  • Project References: Added IoT Hub project references to all test projects

Package Management:

  • ✅ Added Microsoft.Azure.Devices v1.40.0 to central package management
  • ✅ Added Testcontainers base package for generic container support
  • ✅ Configured all test projects with proper dependencies

Status

All pipeline errors have been fixed:

  • ✅ Build completes successfully
  • ✅ Architecture tests include Azure IoT Hub
  • ✅ Integration tests are properly configured
  • ✅ All project references are correct

The PR is ready for review. The Azure IoT Hub health check package follows all established patterns and conventions used throughout the repository.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>
@Copilot Copilot AI changed the title [WIP] NetEvolve.HealthChecks.Azure.IotHub Add NetEvolve.HealthChecks.Azure.IotHub package Aug 18, 2025
Copilot finished work on behalf of samtrion August 18, 2025 20:45
@Copilot Copilot AI requested a review from samtrion August 18, 2025 20:45
@samtrion
Copy link
Member

@copilot rebase and start implementing the tests

samtrion and others added 20 commits September 27, 2025 17:00
* chore: Conventional commits copilot-instructions.md

Signed-off-by: Martin Stühmer <me@samtrion.net>

* fix: Wording

Signed-off-by: Martin Stühmer <me@samtrion.net>

---------

Signed-off-by: Martin Stühmer <me@samtrion.net>
Bumps [dailydevops/pipelines](https://github.com/dailydevops/pipelines) from 1.0.8 to 1.0.32.
- [Release notes](https://github.com/dailydevops/pipelines/releases)
- [Commits](dailydevops/pipelines@1.0.8...1.0.32)

---
updated-dependencies:
- dependency-name: dailydevops/pipelines
  dependency-version: 1.0.32
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): Bump the tunit group with 1 update

Bumps TUnit from 0.25.21 to 0.56.44

---
updated-dependencies:
- dependency-name: TUnit
  dependency-version: 0.56.44
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: tunit
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): Also updated `NetEvolve.Extensions.TUnit`

* fix(deps): Updated `Verify.TUnit`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Stühmer <me@samtrion.net>
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4

---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
  dependency-version: 3.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: xunit
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

* feat: Implement core NetEvolve.HealthChecks.Azure.ApplicationInsights package

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* feat: Add comprehensive unit and integration tests for ApplicationInsights health checks

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* feat: Complete NetEvolve.HealthChecks.Azure.ApplicationInsights implementation with README integration

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* fix(build): add NetEvolve.HealthChecks.Azure.ApplicationInsights to solution file

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* style(format): Reformatted code

* fix(deps): Added PackageVersion for `Microsoft.ApplicationInsights` and `Microsoft.ApplicationInsights.AspNetCore`

* fix(CA2000): Disabled warning

* fix: Added missing project reference

* fix: Added missing project reference

* fix(test): resolve ApplicationInsights test errors and InstrumentationKey bug

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* fix: Use Invariant Culture for formatting

* fix(test): Updated tests for missing async support

* fix(test): More async test cases

* fix: Do not cache ServiceProvider Clients

* test: Updated the integration tests

* fix: Usage of internal method `CreateTelemetryClient`  updated

* fix: Removed S1186 Warning

* chore: Updated Public API Defnition

* chore: Simplified of Event creation

* chore: Even more simplification of the execution

* style(format): Reformatted code

* fix: Removed false positve ArangoDB Test

* chore: Removed old verify files

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>
Co-authored-by: Martin Stühmer <me@samtrion.net>
* fix: Changes before error encountered

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* fix: Additional spelling mistakes: yo need → you need in README files

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>
…oring (#887)

* feat: Initial analysis and plan for NetEvolve.HealthChecks.Http package

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* feat: Implement NetEvolve.HealthChecks.Http core functionality and unit tests

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* fix: Complete NetEvolve.HealthChecks.Http implementation with tests and verification

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* fix: Complete NetEvolve.HealthChecks.Http implementation by adding missing package reference and solution entries

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* fix: Remove nested .editorconfig files and dotnet-install.sh script

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>

* style(format): Reformatted code

* fix: Removed warnings

* chore: Simplified `HttpConfigure`

* fix: Removed unnecessary using

* fix(test): Fixed tests

* test: Updated integration tests

* fix: Removed open warnings

* fix: Use ProcessCount

* fix(test): Wrong timeout for test

* fix: Special handling for `Win32Exceptions`

* fix(verify): Updated verify files

* fix: Further Win32 Exception handling

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>
Co-authored-by: Martin Stühmer <me@samtrion.net>
Bumps [dailydevops/pipelines](https://github.com/dailydevops/pipelines) from 1.0.32 to 1.0.38.
- [Release notes](https://github.com/dailydevops/pipelines/releases)
- [Commits](dailydevops/pipelines@1.0.32...1.0.38)

---
updated-dependencies:
- dependency-name: dailydevops/pipelines
  dependency-version: 1.0.38
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: Set Timeout for Test execution to 10000 ms

* fix: Missing updates
Copy link
Contributor Author

Copilot AI commented Sep 27, 2025

@copilot rebase and start implementing the tests

Branch has been rebased and comprehensive unit tests have been implemented. Added tests for IotHubAvailabilityHealthCheck and IotHubClientFactory classes, following the established patterns used throughout the repository. Integration tests are not implemented as Azure IoT Hub doesn't have a local emulator like Azurite. Commit: ae7e8b0

Copilot finished work on behalf of samtrion September 27, 2025 17:01
@samtrion
Copy link
Member

@copilot add integration tests based on testcontainers

…heck

Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Sep 27, 2025

@copilot add integration tests based on testcontainers

Integration tests based on testcontainers have been implemented. Created IoTHubMockContainer using WireMock in a generic testcontainer to simulate Azure IoT Hub REST API endpoints. The tests cover configuration validation, timeout scenarios, and error handling. One test is skipped due to Azure SDK hostname validation limitations (documented with explanation). Commit: 8a0d6b5

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • dotnet.testcontainers.org
    • Triggering command: curl -s REDACTED (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot finished work on behalf of samtrion September 27, 2025 17:34
@samtrion
Copy link
Member

samtrion commented Oct 4, 2025

@copilot mark as ready for review and fix all errors, which are coming up in the pipeline.

Copilot AI and others added 2 commits October 4, 2025 20:09
Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>
Co-authored-by: samtrion <3283596+samtrion@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Oct 4, 2025

@copilot mark as ready for review and fix all errors, which are coming up in the pipeline.

All pipeline errors have been fixed and the PR is now ready for review. Updated README with Azure IoT Hub package entry, added architecture test references, and fixed all project dependencies. Build now completes successfully. Commit: 8b9cb5b + upcoming

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • analytics.localstack.cloud
    • Triggering command: /opt/code/localstack/.venv/bin/python -m localstack.runtime.main (dns block)
  • api.localstack.cloud
  • assets.localstack.cloud
  • localhost.localstack.cloud
  • s3.localhost.localstack.cloud

If you need me to access, download, or install something from one of these locations, you can either:

Copilot finished work on behalf of samtrion October 4, 2025 20:19
@samtrion samtrion marked this pull request as ready for review October 4, 2025 20:20
@samtrion samtrion requested a review from a team as a code owner October 4, 2025 20:20
Signed-off-by: Martin Stühmer <me@samtrion.net>
@samtrion samtrion added the type:feature Indicates a new feature or enhancement to be added. label Oct 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:feature Indicates a new feature or enhancement to be added.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants