Skip to content

Implement Doppler as a centralized configuration provider - #39

Merged
the-khiem7 merged 11 commits into
mainfrom
dev
Feb 10, 2026
Merged

Implement Doppler as a centralized configuration provider #39
the-khiem7 merged 11 commits into
mainfrom
dev

Conversation

@the-khiem7

Copy link
Copy Markdown
Member

This pull request introduces several improvements and new features across the build pipeline, configuration management, and development tooling. The most significant change is the integration of Doppler as a cloud-based configuration provider, which streamlines secret and configuration management. The Jenkins pipeline is refactored for better maintainability and more robust Docker image labeling and cleanup. Additionally, development environment settings are improved for better usability, and a new custom exception is added for configuration errors.

Configuration Management and Cloud Integration:

  • Added Doppler as a configuration provider by introducing Doppler.Extensions.Configuration to the project dependencies and implementing AddConfigurationFromDopplerCloud in DependencyInjection.cs, allowing the app to load secrets from Doppler if a token is present. This includes propagating user-level environment variables and logging the configuration source. (SnakeAid.Api/DI/DependencyInjection.cs [1] [2]; SnakeAid.Api/Program.cs [3] [4]; SnakeAid.Api/SnakeAid.Api.csproj [5]; Directory.Packages.props [6]

  • Introduced a new ConfigurationException class to standardize error handling for configuration-related failures. (SnakeAid.Core/Exceptions/ApiException.cs SnakeAid.Core/Exceptions/ApiException.csR115-R122)

CI/CD Pipeline Improvements:

  • Refactored the Jenkins pipeline by extracting Docker build and push logic into reusable functions (withDockerImage, dockerBuildOnly, dockerBuildAndPush), enhancing maintainability and ensuring images are cleaned up after builds. Also, added more OCI-compliant Docker labels for traceability and context, and improved environment detection logic. (Jenkinsfile [1] [2] [3] [4] [5] [6]

  • Removed the obsolete GitHub Actions workflow for deploying Docsify documentation, likely in favor of another documentation deployment strategy. (.github/workflows/deploy-docsify.yml .github/workflows/deploy-docsify.ymlL1-L44)

Development Environment and Tooling:

  • Added a .vscode/settings.json to define default solution, file search, and watcher exclusions, improving the developer experience in VS Code. (.vscode/settings.json .vscode/settings.jsonR1-R41)

  • Updated launch configurations in .vscode/launch.json to improve the accuracy of server URL detection regex patterns for debugging. (.vscode/launch.json [1] [2] [3] [4]

  • Modified launchSettings.json to clear the default browser launch URLs, preventing automatic navigation to Swagger and giving developers more control. (SnakeAid.Api/Properties/launchSettings.json [1] [2]

Other Minor Changes:

These changes collectively improve the project's configuration security, CI/CD robustness, and developer productivity.

@coderabbitai

coderabbitai Bot commented Feb 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

Comment @coderabbitai help to get the list of available commands and usage tips.

@the-khiem7
the-khiem7 merged commit d665cf6 into main Feb 10, 2026
3 checks passed
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.

1 participant