Microsoft · Free Practice Questions · Last reviewed May 2026
36real exam-style questions organised by domain, each with the correct answer highlighted and a plain-English explanation of why it's right — and why the others are wrong.
7% of exam · 6 sample questions below
A development team uses a forking workflow in Azure Repos. They want to ensure that only specific users can create forks of the main repository. How can they achieve this?
Use branch security to restrict who can create forks
Set branch policies on the main branch to prevent forks
Configure the repository to disable forks globally
Remove the 'Create Fork' permission from all users except the required group
The 'Create Fork' permission is a repository-level security permission in Azure Repos, stored separately from branch permissions. To allow only a specific group to create forks, you remove the 'Create Fork' permission from all other users and groups (for example, Contributors and Readers) in the repository's Security page, then explicitly set it to 'Allow' for the required group. This is the only per-repository mechanism that enforces the requirement precisely, since it leaves fork creation available to the approved group while denying everyone else.
A team uses Git for source control. They want to automatically squash all commits in a feature branch into a single commit when merging to the main branch. Which merge type should they use?
Rebase and fast-forward
Squash commit
Squash commit is correct because it merges the feature branch by combining all of its changes into a single new commit on the target branch. This collapses the entire commit history of the feature into one commit, exactly matching the requirement to combine all changes into a single commit.
Merge commit (no fast-forward)
Semi-linear merge
A company has a policy that all code changes must be reviewed by at least two people. However, for urgent bug fixes, they want to allow a single reviewer. How should they configure the branch policy?
Set minimum number of reviewers to 1 and require a separate approval from a manager
Set minimum number of reviewers to 2 and allow resetting code review votes on new pushes
Configure a build validation policy that checks number of approvals
Set minimum number of reviewers to 2, but allow policy override for urgent fixes
This allows the two-reviewer policy to be applied normally, while still permitting urgent fixes to be merged without two approvals; the override requires a justification and is logged for audit, balancing policy enforcement with operational flexibility.
A developer accidentally committed a sensitive password to a Git repository. The commit has already been pushed to the remote. What is the first step to remediate the situation?
Delete the file from the repository and commit the deletion
Remove the password from the file, amend the commit, and force push
Revert the commit that introduced the password
Immediately notify the security team and rotate the password
Rotating/revoking the password is a critical remediation step to prevent unauthorized use, but it does not remove the secret from source control. You must also purge the secret from Git history using tools like git filter-branch or git filter-repo, or by amending the commit as described, to fully eliminate the exposure.
A team is migrating from TFVC to Git. They have a large codebase with many branches. What is the recommended approach to preserve the history during migration?
Copy the latest version of the code to a new Git repository and start fresh
Use the Git-TF tool to clone the TFVC repository
Use the git-tfs tool to clone the TFVC repository with changesets
git-tfs is the standard community-maintained bridge that clones a TFVC repository by replaying each TFVC changeset into a corresponding Git commit, preserving the original author, timestamp, commit message, branch structure, and merge topology. It handles the TFVC-to-Git ID mapping and can also fetch shelvesets, making it the preferred tool for a full-fidelity migration. Because it reconstructs the entire commit graph rather than just copying files, it maintains the historical context needed for auditing, bisecting, and code review — which is exactly what the team needs when moving from TFVC to Git.
Export TFVC as a Git bundle and import with --no-metadata
Which TWO branch policies can be configured in Azure Repos to enforce code quality?
Status check
Status check is a valid branch policy in Azure Repos that requires an external service (e.g., SonarQube, Jenkins) to post a successful status to the PR before it can be completed. The policy defines a context name, and the service must report 'succeeded' via the Status API; otherwise, the PR is blocked. This enforces quality gates from CI/CD or analysis tools.
Comment requirements
Build validation
Build validation is a valid branch policy in Azure Repos that requires a designated build pipeline to run successfully against the merged result of the PR before it can be completed. It ensures the code compiles and passes automated tests, acting as a direct quality gate before merge. This is one of the two correct answers.
Work item linking
Merge strategy
Want more Design and implement source control practice?
Practice this domain13% of exam · 6 sample questions below
A team uses Azure Boards and wants to ensure that work items moved to the 'Done' state require a completed code review. What should they configure?
Add a work item rule in the process template to require a code review for the 'Done' transition.
A process template rule is the correct mechanism in Azure Boards because rules can enforce conditions on state transitions, such as requiring a custom 'Code Review' field to be completed before a work item is allowed to move to 'Done'.
Modify the work item type definition to add a custom field for code review status.
Use a tag to mark work items as code-reviewed before moving to 'Done'.
Configure branch policies in Azure Repos to require pull request approvals.
During a sprint review, stakeholders complain that they don't receive notifications about completed work items. The team uses Azure Boards with a custom notification subscription. What is the most likely cause?
Email notifications are disabled at the organization level.
The subscription is set to deliver only to the team members.
The subscription's 'Deliver to' filter excludes stakeholders.
The 'Deliver to' filter in an Azure DevOps notification subscription controls exactly which roles, groups, or individuals receive the alert. If stakeholders are omitted from that filter, they will not get any notifications from this subscription even though the subscription itself is active and functioning, which directly explains the symptom.
The subscription was automatically disabled after the first notification.
A multinational company uses Azure DevOps with a single project. The project has multiple teams in different time zones. They want to customize the process to reflect different working days for each team. What is the recommended approach?
Create a custom process for each time zone and assign teams accordingly.
Use the same process but create separate areas for each team, then configure working days per area path.
Use the same process and configure working days in the team settings for each team.
Azure DevOps allows each team in a shared project to have its own working days and non-working days under Team Settings, so teams in different time zones can use the same process while reflecting local calendars. This per-team calendar feeds backlog, sprint, and capacity views, making it the correct approach for a multinational company using a single project.
Use the same process and configure capacity planning for each team to account for time off.
An organization uses Azure DevOps and wants to implement a change management process where all changes to the main branch require approval from a change advisory board (CAB). The CAB members are not part of the development team. How should they configure this?
Set branch permissions to restrict push to main and only allow CAB to approve via manual process.
Create a new branch policy on main that requires a minimum number of reviewers from a separate CAB group.
A branch policy on main can require a minimum number of reviewers from a specific Azure DevOps group, such as a separate CAB. This ensures automated enforcement of the approval requirement, so pull requests cannot be completed without the mandated CAB reviews.
Use a service hook to notify CAB when a PR is created, and rely on manual approval.
Add the CAB as members of the development team and require team review.
Which TWO actions help improve communication and collaboration in a distributed Azure DevOps team?
Maintain a shared wiki with project documentation and decisions.
Maintaining a shared wiki centralizes project documentation and decisions in a single source of truth, with versioning and searchability that reduce redundant questions and ensure all team members, regardless of location or role, can access consistent, up-to-date information.
Use multiple chat channels for each topic to organize discussions.
Use long email threads for decision-making to ensure full documentation.
Schedule daily stand-up meetings at a time that works for all time zones.
Scheduling daily stand-up meetings at a time that accommodates all time zones maximizes participation and ensures the team maintains a consistent sync cadence, which is critical for quickly surfacing blockers and aligning on priorities across distributed teams.
Avoid using pull request comments to reduce noise.
Which THREE steps are essential when customizing an Azure DevOps process?
Use Hosted XML process model to customize.
Add custom fields to work item types.
Adding custom fields to work item types is essential because it enables teams to capture, query, and report on project-specific data that is not covered by the default system fields, supporting more tailored workflow and metrics.
Directly modify the 'Agile' system process.
Create an inherited process from an existing system process.
Creating an inherited process from an existing system process is required for customization because it creates a private, editable copy that preserves the original system process while allowing you to add fields and work item types without affecting other projects.
Add custom work item types to the process.
Adding custom work item types to the process is essential when the default set (e.g., bug, task, epic) does not fit your team's workflow, allowing you to define new types with their own custom fields, states, and rules to match your specific process.
Want more Configure processes and communications practice?
Practice this domain13% of exam · 6 sample questions below
A company uses Azure DevOps for CI/CD. The security team requires that all pipeline runs must use a specific service connection (ServiceConnection-Prod) that has been approved for production deployments. However, developers are accidentally using unapproved connections. You need to enforce that only the approved service connection can be used in any pipeline that deploys to the production environment. What should you do?
Define a required template for all pipelines that includes the service connection, and instruct developers to use it.
Set up a manual approval gate on the production environment stage in the pipeline.
Configure a branch policy on the main branch to require a successful build before merging.
Create an Azure Pipeline decorator that validates the service connection used in each task and fails the pipeline if it is not the approved one.
A pipeline decorator is an extension-based mechanism that injects a custom task into every pipeline run at the specified point (pre-job, post-job, or around a task). By defining a post-task decorator, you can read the inputs of each executed task—such as the `connectedServiceName` or `azureSubscription` input—and compare the referenced service connection to the organization's approved list. If the connection is not approved, the decorator can set the task result to `Failed` and stop the pipeline, providing a hard enforcement that ordinary YAML conventions cannot achieve. This works for any pipeline that uses the task, regardless of whether the author referenced a shared template.
A company uses Azure DevOps and needs to ensure that all pipelines use approved YAML templates from a central repository. The security team wants to prevent developers from referencing unapproved templates. What is the best way to enforce this?
Create a branch policy on the repository that requires all pull requests to be approved by security team members.
Configure a variable group with the approved template repository and require it in all pipelines.
Use a pipeline decorator to check the template origin and fail the pipeline if unapproved.
A custom pipeline decorator could technically inspect template origins and fail the build, but it requires you to write, publish, and maintain a private extension, which is complex and error-prone. The built-in 'Required template' repository setting provides the same enforcement more simply and reliably without custom code.
Set the 'Required template' repository setting in the Azure DevOps project to the approved central repository.
You are designing a compliance strategy for Azure DevOps pipelines that deploy to production. The company policy requires that all production deployments must be reviewed by a security lead. Additionally, the deployment must use a specific release pipeline that has been pre-approved. How should you implement this?
Create a branch policy that requires the security lead to approve the pull request before merging.
Define a 'production' environment in Azure DevOps and configure an approval check that requires the security lead. Have the pipeline deploy to that environment.
Environment approval checks in YAML pipelines create a standardized, auditable manual gate before any deployment to the production environment. This integrates directly with pipeline runs, ensures the security lead explicitly approves each release, and provides full traceability, fulfilling the compliance requirement.
Use a Classic release pipeline with a pre-deployment approval gate for the production stage.
Store the approved pipeline definition in a variable group and reference it in all pipelines.
A company uses Azure DevOps and has a security policy that all pipeline runs must use a specific service connection scoped to a resource group. A developer reports that a pipeline fails with the error: 'The service connection does not have permission to access the resource.' What is the most likely cause?
The Azure subscription linked to the service connection is disabled.
The service connection name is misspelled in the pipeline YAML.
The variable group in the library does not include the service connection ID.
The service principal used by the service connection does not have the required role assignment on the resource group.
The service connection's service principal lacks a role assignment (such as Contributor) scoped to the target resource group, so Azure RBAC denies access. Granting the required role on that resource group resolves the permission error.
You are reviewing an Azure Policy assignment in a DevOps environment. The exhibit shows the policy assignment JSON. The policy set includes the built-in policy 'Allowed Locations' with effect Deny. During a pipeline deployment, a resource creation fails with a policy violation error. The resource being deployed is a storage account in the 'centralus' region. What is the most likely reason for the failure?
The policy assignment is misconfigured because it does not specify a policy set definition.
The resource being deployed is in a region that is not allowed by the policy assignment parameters.
The allowedLocations parameter in the policy assignment restricts permissible deployment regions to eastus and westus only. Since the resource being deployed is in centralus, which is not included in those parameters, the 'Allowed Locations' policy denies the deployment as non-compliant.
The resource group is located in a region that overrides the policy assignment.
The policy set definition does not include the 'Allowed Locations' policy.
Your organization uses Azure DevOps for a multi-tier web application. The application consists of a React frontend, a Node.js API, and a SQL database. The security team has mandated the following: (1) All code changes must be scanned for secrets before merging to the main branch. (2) Infrastructure-as-code templates (ARM) must be validated for security compliance before deployment. (3) Production deployments must use a service connection with a managed identity that has only the required permissions. You have set up a CI/CD pipeline with two stages: Build and Release. The Build stage runs on pull requests and the Release stage deploys to a production environment. Recently, a developer accidentally committed a secret (API key) to a configuration file. The secret was not caught by the pipeline, and the code was merged to main. You need to prevent this in the future. What should you do?
Configure a branch policy to require at least two reviewers on pull requests to the main branch.
Implement a manual approval gate on the Release stage to review each deployment for secrets.
Use a pipeline decorator to inject a validation step that runs Azure Policy on the code repository.
Add a 'Credential Scanner' task to the Build pipeline and configure it to fail the build if any secrets are found. Also, move all secrets to Azure Key Vault and reference them via variable groups.
Adding a Credential Scanner task to the Build pipeline and configuring it to fail the build when secrets are found automatically blocks hardcoded credentials from being merged into the codebase. Moving secrets to Azure Key Vault and referencing them via variable groups centralizes secret management and removes the need to store sensitive values in source code.
Want more Develop a security and compliance plan practice?
Practice this domain7% of exam · 6 sample questions below
You are configuring Application Insights for a .NET Core web application deployed to Azure App Service. The application must capture telemetry for all HTTP requests, exceptions, and dependency calls with minimal code changes. What should you do?
Enable the Application Insights site extension in the App Service 'Application Insights' blade.
The Application Insights site extension in the App Service 'Application Insights' blade is the correct choice because it attaches the Application Insights agent directly to the App Service runtime, automatically collecting server-side telemetry such as requests, dependencies, exceptions, and performance counters without requiring any code changes, recompilation, or redeployment.
Configure diagnostics logging in the App Service and stream logs to Application Insights.
Install the Microsoft.ApplicationInsights.AspNetCore NuGet package and add services.AddApplicationInsightsTelemetry() in Startup.cs.
Add the Application Insights JavaScript SDK to each page.
Your team uses Azure DevOps for CI/CD. You need to ensure that every build publishes telemetry to Application Insights, including build duration, test pass rate, and deployment frequency. Which approach should you use?
Call the Azure DevOps REST API from a custom script in the pipeline to capture telemetry.
Run the Azure DevOps CLI command 'az devops telemetry publish' in a build task.
Use the built-in 'Pipeline Telemetry' dashboard in Azure DevOps.
Use the Azure DevOps Analytics OData endpoint to query pipeline telemetry and send to Application Insights via a release task.
The Analytics Service exposes pipeline run, test, and work item data as OData entities, allowing you to run rich queries. You can then use a release pipeline task (e.g., a PowerShell script) to call the OData endpoint, transform the results, and send them to Application Insights using its TrackEvent or TrackMetric APIs for custom monitoring and alerting. This is the recommended integration path.
You are designing a centralized logging strategy for multiple microservices hosted in Azure Kubernetes Service (AKS). Each microservice writes logs in JSON format to stdout/stderr. The operations team needs to query logs across all services and correlate them with application performance metrics. Which solution provides the best integration?
Configure AKS to send logs to Azure Blob Storage and use Azure Storage Analytics for querying.
Enable Container Insights in Azure Monitor to collect stdout/stderr logs and metrics into a Log Analytics workspace.
Container Insights is the native Azure Monitor solution for AKS: it deploys a Log Analytics agent as a DaemonSet to collect stdout/stderr logs, performance metrics, and container inventory into a Log Analytics workspace. This enables rich Kusto Query Language (KQL) queries, alerting, and correlation with other Azure Monitor data, making it the correct centralized logging approach for AKS workloads.
Stream logs to Azure Event Hubs and then to Azure Data Explorer for analysis.
Deploy the Application Insights agent as a DaemonSet in AKS and send logs directly to Application Insights.
You are troubleshooting an intermittent performance issue in a web application. Application Insights shows a high number of failed dependency calls to Azure SQL Database. The errors are SqlException with error code -2 (timeout). What is the most likely cause and recommended fix?
The application is exhausting the connection pool; increase Max Pool Size in the connection string.
Connection pool exhaustion occurs when the application requests more connections than the configured Max Pool Size, forcing new requests to wait for a free connection until the connection timeout threshold is reached, which manifests as intermittent timeouts under load; increasing Max Pool Size or ensuring connections are properly disposed can resolve this.
The SQL Server firewall is blocking the application IP; add a firewall rule.
The database is experiencing deadlocks; enable read committed snapshot isolation.
The database DTU limit is being exceeded; scale up the service tier.
Which TWO metrics should you monitor to evaluate the reliability of a web application according to the DORA metrics?
Lead Time for Changes
Change Failure Rate
Change Failure Rate is the percentage of deployments that cause a failure in production, such as a service impairment or rollback. It is a core DORA reliability metric because it directly quantifies how often changes disrupt service, making it essential for evaluating system stability.
Mean Time to Restore (MTTR)
Mean Time to Restore (MTTR) measures the average time it takes to recover from a production failure, from detection to full service restoration. It is a key reliability metric because it indicates how quickly a team can respond to incidents and minimize downtime, complementing failure rate by assessing recovery effectiveness.
CPU Usage
Deployment Frequency
You have deployed an Azure Resource Manager (ARM) template for a scheduled query rule as shown. The rule is enabled and targets an Application Insights resource. However, no alerts are firing despite HTTP 500 errors occurring. What is the most likely cause?
The severity is set to 2, which suppresses the alert.
The threshold of 100 is too high; the rule should use a percentage-based condition on error rate.
The rule should use a percentage-based condition on the failed request rate rather than an absolute count of 100. In low-traffic applications, 100 failed requests may represent a very high error percentage and go undetected, while a percentage threshold would trigger alerts based on the rate of failures relative to total requests.
The metric name 'requests/count' is misspelled; it should be 'requests/count' (correct).
The dimension filter for 'request/resultCode' includes '500' but should also include '5xx' wildcard.
Want more Implement an instrumentation strategy practice?
Practice this domain54% of exam · 6 sample questions below
A team uses Azure Pipelines to build a .NET Core application. The build pipeline runs successfully, but the release pipeline fails when deploying to Azure App Service with the error: 'ERROR_FILE_IN_USE'. What is the most likely cause?
The deployment slot is not configured correctly.
The 'Take App Offline' setting is not enabled in the deployment task.
The 'Take App Offline' setting instructs the Web App to place an app_offline.htm file in the site root, which gracefully shuts down the app and releases any locks on its assemblies and files. Without this, the running process holds the DLLs, causing 'file in use' errors when the pipeline tries to overwrite them.
The Azure App Service plan is not scaled appropriately.
The build configuration is set to Release instead of Debug.
A development team is designing a build pipeline for a microservices application. They want to ensure that each service is built and tested independently, but they also need to run integration tests that span multiple services. What is the recommended approach?
Use a single release pipeline that triggers manual deployment for each service.
Create a single build pipeline that builds all services together to ensure consistency.
Create individual build pipelines for each service, and a separate release pipeline that deploys all services to an integration environment for testing.
Individual build pipelines per service enable each team to build, version, and test independently, while a dedicated release pipeline that deploys all services to an integration environment validates cross-service contracts and interactions in a realistic environment, combining independence with necessary integration assurance.
Build each service separately, but skip integration tests to avoid complexity.
A company uses Azure Pipelines with YAML-based pipelines stored in a Git repository. The pipeline triggers on every push to the main branch, but the team wants to reduce unnecessary builds when only documentation files are changed. What is the best way to achieve this?
Use path filters in the trigger section to exclude 'docs/*' and '*.md' files.
Path filters in the trigger section use `trigger.paths.exclude` to prevent pipeline execution when only files under `docs/*` or matching `*.md` are changed; any other changed file will still trigger the pipeline, making this the correct, event-driven way to avoid documentation commits.
Configure branch policy to require a pull request for documentation changes.
Add a 'condition' to the pipeline that checks if changed files are documentation.
Disable CI trigger and rely on scheduled builds.
A team is implementing a release pipeline for a Node.js application. They want to run integration tests against a temporary environment that is destroyed after the tests complete. Which strategy should they use?
Use a separate release pipeline that deploys to a production environment for testing.
Use a single release pipeline that deploys to a staging slot and runs tests on the slot.
Run integration tests in the build pipeline using a mock environment.
Use a release pipeline that deploys to a new Azure App Service instance, runs tests, and then removes the instance.
Using a release pipeline that deploys to a new Azure App Service instance, runs tests, and then removes the instance is correct because it provides an ephemeral, isolated environment that closely mirrors production, enabling realistic integration validation and automatic teardown, which avoids lingering state and reduces cost.
Which TWO actions should be taken to secure secrets in Azure Pipelines? (Choose two.)
Use secret variables with the 'secret' input type to mask them in logs.
In Azure Pipelines, defining variables with the `secret` input type (e.g., via the pipeline UI or YAML `${{ variables.secret }}`) ensures they are encrypted at rest and automatically masked in all pipeline logs, preventing accidental exposure. This is a fundamental practice for handling sensitive data in CI/CD, as it protects against log leakage while still allowing tasks to reference the variable securely.
Use a variable group without Key Vault integration for easier management.
Store secrets directly in the YAML pipeline file.
Store secrets in a variable group linked to Azure Key Vault.
By linking a variable group to Azure Key Vault, the pipeline retrieves secret values at runtime via a securely authenticated connection, ensuring secrets are never stored in plaintext within the pipeline definition or logs. This approach leverages Key Vault's access policies and audit capabilities, providing a centralized, secure way to manage and rotate secrets across pipelines.
Disable CI triggers to reduce exposure.
Your company has a large monorepo with multiple microservices. You have a single YAML-based Azure Pipeline that builds the entire solution on every commit to the main branch. The pipeline takes over an hour to complete, causing long feedback loops. Developers often submit changes to only one service, but the whole pipeline runs. You need to reduce build time while maintaining quality. You are considering splitting the pipeline into multiple pipelines, each for a service, and using path triggers. However, some services have dependencies on shared libraries that are updated infrequently. You also need to ensure that integration tests that span multiple services still run when necessary. What should you do?
Create separate pipelines for each service with path triggers, and create an additional comprehensive pipeline that triggers only when shared libraries change.
This approach uses path-based triggers to run individual service pipelines only when their source changes, reducing build time and resource usage. The additional comprehensive pipeline, triggered only by modifications to shared libraries, ensures cross-service integration tests still run when dependencies change, preserving integration testing without unnecessary builds.
Keep the single pipeline but add caching for dependencies.
Use a single pipeline but add conditional stages to skip unchanged services.
Create separate pipelines for each service with path triggers, and disable the comprehensive pipeline.
Want more Design and implement build and release pipelines practice?
Practice this domain6% of exam · 6 sample questions below
Your team uses a monorepo in Azure Repos with multiple feature branches. You notice that merge conflicts frequently occur because developers are working on the same files. You want to reduce conflicts and improve collaboration. Which branching strategy should you recommend?
Use release branches for each deployment and cherry-pick commits from main.
Use trunk-based development with feature flags to merge small, frequent changes.
Trunk-based development with feature flags enables developers to merge small, frequent changes directly into the trunk behind a flag, keeping branches short-lived and integration burden low, which minimizes merge conflicts and supports continuous integration and delivery.
Use a single main branch and require all changes to be committed directly.
Use GitFlow with separate develop and release branches.
Your company is migrating from TFVC to Git in Azure Repos. The repository contains a large number of binary files (e.g., .dll, .exe) that are frequently updated. You need to minimize repository size and clone time. What should you include in your migration plan?
Perform a shallow clone of the last commit only.
Use Git LFS to track binary files.
Git LFS stores binary files in a separate remote store and replaces them in Git with small text pointers, so cloning fetches only the pointers and downloads actual binaries on demand (via `git lfs fetch` or by checking out the working tree). This keeps the .git directory and clone time small, and Azure Repos fully supports Git LFS for repos, making it the correct solution for large binary files.
Use sparse checkout to exclude binary files from the working tree.
Use TFVC to Git converter with default settings.
You have a GitHub repository with a GitHub Actions workflow that builds a .NET application. The workflow should only run when changes are pushed to the main branch, but it currently runs on every push to any branch. How should you fix the workflow trigger?
Add 'on: push: branch: [main]' to the workflow.
Add 'on: push: paths: [main]' to the workflow.
Add 'on: pull_request: branches: [main]' to the workflow.
Add 'on: push: branches: [main]' to the workflow.
This correctly configures the 'push' trigger with the 'branches' filter set to 'main', using the proper plural key. As a result, the workflow will execute only when commits are pushed directly to the 'main' branch, ignoring pushes to other branches.
Your team uses GitHub and wants to enforce that all commits to the main branch are signed with a GPG key. Which branch protection rule should you configure?
Require pull request reviews before merging.
Require status checks to pass before merging.
Require linear history.
Require signed commits.
Requiring signed commits is a branch protection rule that rejects any commit not cryptographically signed with a verified GPG or S/MIME key, authenticating the committer and ensuring content integrity. This directly enforces that every commit must be signed, exactly as the requirement demands.
Your Azure DevOps project contains a Git repository with multiple branches. You need to ensure that code reviews are mandatory for all pull requests targeting the 'release' branch. Additionally, the build pipeline must pass before merging. How should you configure branch policies?
Enable 'Build validation' only.
Enable 'Require a minimum number of reviewers' only.
Enable 'Require a minimum number of reviewers' and 'Build validation'.
Combining 'Require a minimum number of reviewers' and 'Build validation' enforces both peer review and a successful build pipeline. This ensures that changes are approved by the required reviewers and meet the build quality gate before merging, delivering comprehensive branch protection.
Enable 'Require a minimum number of reviewers' and 'Comment resolution'.
Your organization has multiple GitHub repositories that use shared workflows. You want to centrally manage these workflows and ensure they are always up to date. What is the recommended approach?
Create a central repository with reusable workflows and reference them using the 'uses' keyword in your workflows.
Reusable workflows are the official GitHub Actions pattern: you store a workflow file in a central repository and invoke it from other repositories using the `uses` keyword with a path like `owner/repo/.github/workflows/reusable.yml@ref`. This approach supports inputs, secrets, and version pinning, and is the recommended way to avoid duplicating CI/CD logic across many GitHub repositories.
Use the GitHub API to push workflow files to each repository on a schedule.
Download the workflows from a central blob storage and include them as inline scripts.
Store the workflows in a separate repository and use Git submodules to include them.
Want more Design and implement a source control strategy practice?
Practice this domainThe AZ-400 exam has 50 questions and must be completed in 120 minutes. The passing score is 700/1000.
Scenario-based questions covering exam objectives with detailed answer explanations.
The exam covers 6 domains: Design and implement source control, Configure processes and communications, Develop a security and compliance plan, Implement an instrumentation strategy, Design and implement build and release pipelines, Design and implement a source control strategy. Questions are weighted by domain — higher-weight domains appear more on your actual exam.
No. These are original exam-style practice questions written against the official Microsoft AZ-400 exam objectives. They are not copied from the real exam. Courseiva focuses on genuine understanding, not memorisation of braindumps.
Courseiva tracks your accuracy per domain and routes you toward weak areas automatically. Free, no account required.