Skip to content

Conversation

@strvmarv
Copy link
Owner

…rity improvements

This release candidate represents a comprehensive modernization of the Updown.io .NET Client.

Major Features

  • Added .NET 9 support (net9.0 target framework)

  • Enabled nullable reference types across entire codebase

  • Implemented all missing API endpoints (Downtimes, Metrics, Nodes)

  • Added custom exception types for better error handling

  • Created comprehensive documentation (Architecture, API Reference, Contributing)

API Improvements

  • All async methods now have 'Async' suffix and CancellationToken support

  • All model properties renamed to PascalCase (backward compatible)

  • Added UpdownClientBuilder for thread-safe HttpClient configuration

  • Improved error handling with specific exception types

Security Enhancements

  • Manual test files now use environment variables for API keys

  • Enhanced .gitignore to prevent secret leaks

  • Added .env.example template for secure local development

  • Updated SECURITY.md with comprehensive guidelines

  • Created test documentation with security best practices

Testing

  • All 49 tests passing on .NET 6, 8, and 9

  • Added comprehensive tests for new API endpoints

  • Added error scenario and edge case tests

  • Improved test quality and readability

Documentation

  • Enhanced README with real-world examples

  • Created docs/ARCHITECTURE.md

  • Created docs/API_REFERENCE.md

  • Created docs/CONTRIBUTING.md

  • Created test/UpdownDotNetTests/README.md

  • Added CHANGELOG.md with detailed release notes

Breaking Changes (Mitigated)

  • Old methods/properties marked [Obsolete] but still functional

  • Clear migration path documented

  • Backward compatibility maintained where possible

GitHub Actions

  • Updated workflows to support .NET 9

  • Both build-and-test.yml and build-test-nuget.yml updated

…rity improvements

This release candidate represents a comprehensive modernization of the Updown.io .NET Client.

## Major Features

- Added .NET 9 support (net9.0 target framework)

- Enabled nullable reference types across entire codebase

- Implemented all missing API endpoints (Downtimes, Metrics, Nodes)

- Added custom exception types for better error handling

- Created comprehensive documentation (Architecture, API Reference, Contributing)

## API Improvements

- All async methods now have 'Async' suffix and CancellationToken support

- All model properties renamed to PascalCase (backward compatible)

- Added UpdownClientBuilder for thread-safe HttpClient configuration

- Improved error handling with specific exception types

## Security Enhancements

- Manual test files now use environment variables for API keys

- Enhanced .gitignore to prevent secret leaks

- Added .env.example template for secure local development

- Updated SECURITY.md with comprehensive guidelines

- Created test documentation with security best practices

## Testing

- All 49 tests passing on .NET 6, 8, and 9

- Added comprehensive tests for new API endpoints

- Added error scenario and edge case tests

- Improved test quality and readability

## Documentation

- Enhanced README with real-world examples

- Created docs/ARCHITECTURE.md

- Created docs/API_REFERENCE.md

- Created docs/CONTRIBUTING.md

- Created test/UpdownDotNetTests/README.md

- Added CHANGELOG.md with detailed release notes

## Breaking Changes (Mitigated)

- Old methods/properties marked [Obsolete] but still functional

- Clear migration path documented

- Backward compatibility maintained where possible

## GitHub Actions

- Updated workflows to support .NET 9

- Both build-and-test.yml and build-test-nuget.yml updated
Copilot AI review requested due to automatic review settings October 21, 2025 17:52
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This release candidate introduces a comprehensive modernization of the Updown.io .NET Client, targeting version 2.0.0-rc.1. The update adds .NET 9 support, enables nullable reference types across the codebase, implements missing API endpoints (Downtimes, Metrics, Nodes), and introduces custom exception types for better error handling. The release maintains backward compatibility through obsolete attributes while introducing improved naming conventions (PascalCase properties, Async method suffixes) and enhanced security practices for API key management in tests.

Key Changes:

  • Added .NET 9 support alongside existing .NET 8, 6, and .NET Standard 2.0 targets
  • Enabled nullable reference types and implemented custom exception hierarchy for better error handling
  • Introduced UpdownClientBuilder for thread-safe client configuration

Reviewed Changes

Copilot reviewed 49 out of 50 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/UpdownDotnet.csproj Added .NET 9 target, enabled nullable types, updated package version to 2.0.0-rc.1
test/UpdownDotNetTests/UpdownDotNetTests.csproj Added .NET 9 target and FsCheck.NUnit package, enabled nullable types
src/UpdownClientFactory.cs Refactored with builder pattern support and improved thread-safety
src/UpdownClientBuilder.cs New fluent builder for configuring UpdownClient instances
src/UpdownClientBase.cs Added custom exception handling and CancellationToken support
Multiple test files Updated to use custom exceptions and environment variables for API keys
Multiple API files Added Async suffix to methods and CancellationToken parameters
Multiple model files Renamed properties to PascalCase with backward-compatible obsolete properties
docs/* Added comprehensive documentation (ARCHITECTURE.md, API_REFERENCE.md, CONTRIBUTING.md)
SECURITY.md, README.md, CHANGELOG.md Enhanced with security practices and migration guides

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@strvmarv strvmarv merged commit e5db2e2 into main Oct 21, 2025
3 of 4 checks passed
@strvmarv strvmarv deleted the feature/v2.0.0-rc1-security-improvements branch October 21, 2025 17:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants