Skip to content

Firebase Push Channel#6

Merged
tsutomi merged 4 commits into
mainfrom
firebase-push
Aug 13, 2025
Merged

Firebase Push Channel#6
tsutomi merged 4 commits into
mainfrom
firebase-push

Conversation

@tsutomi

@tsutomi tsutomi commented Aug 13, 2025

Copy link
Copy Markdown
Member

This pull request introduces a new authentication mechanism for messaging connectors, adds Firebase connector projects to the solution, and improves the handling of HTML content parts. The main focus is on extensible authentication support, including new abstractions, providers, and integration patterns. Additionally, dependencies are updated and solution/project configuration is expanded.

Authentication Mechanism Implementation:

  • Added comprehensive documentation describing the new authentication mechanism, including abstractions (IAuthenticationProvider, AuthenticationCredential, etc.), built-in providers (API Key, OAuth2 Client Credentials, Firebase), and integration patterns for connectors.
  • Introduced the AuthenticationCredential class, which encapsulates credential details (type, value, expiration, properties), and provides factory methods for creating token, API key, and basic credentials.

Solution/Project Configuration:

  • Added new projects for Firebase connector and its unit tests to the solution file (Deveel.Messaging.Connector.Firebase, Deveel.Messaging.Connector.Firebase.XUnit).
  • Updated solution configuration to include build and platform settings for the new Firebase projects. [1] [2]
  • Added conditional package references for Microsoft.Extensions.Logging.Abstractions targeting .NET 8.0 and 9.0 in the connector abstractions project.

Messaging Improvements:

  • Improved the HtmlContentPart constructor to default the Html property to an empty string if null, preventing potential null reference issues.

@tsutomi tsutomi requested a review from Copilot August 13, 2025 17:38
@tsutomi tsutomi self-assigned this Aug 13, 2025
@tsutomi tsutomi added the enhancement New feature or request label Aug 13, 2025

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

This pull request introduces a comprehensive authentication mechanism for messaging connectors, adds Firebase connector support, improves HTML content handling, and modernizes the project configuration.

Key changes include:

  • Implementation of extensible authentication framework with providers for API Key, OAuth2 Client Credentials, and Firebase Service Account authentication
  • Addition of Firebase Cloud Messaging connector with complete test coverage
  • Updates to project dependencies and solution configuration for improved multi-targeting support

Reviewed Changes

Copilot reviewed 45 out of 45 changed files in this pull request and generated 1 comment.

File Description
Solution and project files Updated dependency versions with conditional package references for .NET 8.0/9.0 targeting
Firebase connector implementation Added complete Firebase push notification connector with service abstractions and comprehensive test suite
Authentication mechanism Implemented authentication abstractions, providers, and credential management for extensible connector authentication
SendGrid/Twilio connectors Enhanced with improved logging and dependency management

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.

var result = new SendResult(message.Id, $"oauth-{Guid.NewGuid()}");
result.AdditionalData["AuthHeader"] = GetAuthenticationHeader();

return ConnectorResult<SendResult>. Success(result);

Copilot AI Aug 13, 2025

Copy link

Choose a reason for hiding this comment

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

Extra space in method call. Should be 'ConnectorResult.Success(result)' without the space before 'Success'.

Suggested change
return ConnectorResult<SendResult>. Success(result);
return ConnectorResult<SendResult>.Success(result);

Copilot uses AI. Check for mistakes.
@tsutomi tsutomi merged commit 3141291 into main Aug 13, 2025
6 checks passed
@tsutomi tsutomi deleted the firebase-push branch August 13, 2025 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants