Since fall 2023, Workload Identity Federation for Azure service connections has been available, allowing short-lived credential-free authentication to Azure. This post explains its benefits, its limitations, and provides an example of creating service connections using terraform.
[HOWTO] Exclude content from GitHub Copilot
GitHub announced the re-deployment of content exclusions, allowing repo administrators and organization owners to manage content exclusion settings for GitHub Copilot. It's in beta for Copilot Business subscribers and supported in various IDEs. Exclusions can be set for specific files, files in any Git-based repo, or a whole repo.
[HOWTO] Suggest changes directly in Azure DevOps pull requests
Azure DevOps allows proposing changes directly in pull requests, simplifying the process of suggesting small alterations like translations or formatting. Users can mark the part needing a change, click the Comment icon, select the Insert a suggestion icon, and edit the content. The pull request author can then accept and apply the suggested change directly in Azure DevOps.
[HOWTO] Calculate distance between two points (coordinates) on Microsoft SQL Server
Microsoft SQL Server offers the STDistance method to calculate the shortest distance between two geography points with high accuracy.
[NoBrainer] Solve AuthorizationPermissionMismatch error on terraform init
The error "Failed to get existing workspaces: containers.Client#ListBlobs: Failure responding to request: StatusCode=403" in Terraform with an Azure backend indicates a permission issue. To resolve this, assign the Storage Blob Data Contributor or Owner role to the user or service principal. After assignment, use 'az logout' and 'az login -t [tenant id]' commands to refresh the token.
[NoBrainer] Import existing Microsoft Entra ID security groups into terraform state
In a project involving infrastructure as code (IaC) with terraform, Microsoft Entra ID security groups were manually created in the Azure portal. To avoid recreation, the import feature in terraform was used to bring existing groups into terraform state. This involved obtaining object IDs and descriptions, adding the groups as resources in terraform code, and importing them into terraform state.
[HOWTO] Configure Serilog for a .NET Core Web API running on Azure App Service
This blog post guides the configuration of Serilog for a .NET Core Web API running on an Azure App Service. It covers logging requirements and implementation, including Serilog setup in Program.cs and appsettings.json. It also provides instructions for querying logs in Azure Application Insights and streaming them using Log Stream in Azure App Service.
Continuous Integration and Continuous Deployment with JetBrains Space
The author was tasked with setting up a CI/CD process for a Blazor application using JetBrains Space. They had experience with other tools like Azure DevOps and GitHub Actions but found implementing pipelines in Space challenging. They struggled with creating the necessary automation scripts and host parameters. Despite good documentation, they found the CI/CD features lacking in predefined steps and tasks for standard cases, leading to unnecessary effort. They were also concerned about the exposure of project-wide secrets as plain text in runtime parameters.
[FollowUp] Using Testcontainers in integration tests for ASP.NET Core Web API
The blog post discusses transitioning from SQLite to Testcontainers for .NET to run integration tests for ASP.NET Core applications. The author encountered limitations with SQLite when running complex Linq queries. While alternatives like Mocking, EF Core In-Memory Database Provider, and LocalDB were considered, these were found to be wanting. Instead, Testcontainers was chosen for its simple setup, good documentation, and excellent integration with MSSQL servers. This approach does necessitate Docker being installed and operational on the local development environment.
[HOWTO] Automate Terraform execution in Azure DevOps YAML pipeline
The blog post explains the preferred setup for infrastructure deployments using Infrastructure as Code (IaC) with Terraform and Azure DevOps YAML pipelines. The author discusses the organization of service connections and security settings, and provides an in-depth look at the pipeline structure and tasks within each stage. The text also mentions an important update regarding Azure Pipelines Terraform tasks and offers a practical approach on pipeline re-runs after local fixes.