GitHub Copilot can now do more than review a pull request and leave comments.
When Copilot approvals are enabled, it can submit an approving review, and that approval can count toward a repository's required approval rules. The feature is currently in public preview and is disabled by default.
That changes an important part of the pull request workflow.
Previously, teams could use Copilot to find possible bugs, security problems, and maintainability issues while keeping the actual approval decision with human reviewers.
Now an organization can configure Copilot to provide an approval that participates in the merge process.
That can be useful, but it also means repository administrators need to think carefully about where AI approvals should be allowed.
The safest approach is not to ask whether Copilot approvals are "good" or "bad."
Instead, ask a more practical question:
Where does an AI approval fit safely into our existing review and deployment process?
What Copilot Approval Actually Does
By default, Copilot code review leaves a Comment review.
That means its review does not satisfy a repository's required approval count.
When approvals are enabled, Copilot can instead submit an Approve review. GitHub can then treat that approval as satisfying the repository's required-approval rule, depending on the repository configuration.
The basic workflow becomes:
Pull Request
|
v
Copilot Code Review
|
v
Approval Assessment
|
v
Copilot Approval Enabled?
|
+---- No ----> Comment Review
|
+---- Yes
|
v
Approving Review
|
v
Repository Rules
The approval assessment and the actual approval are separate.
Every Copilot review includes an approval assessment, but that assessment alone does not count toward merge requirements.
Why the Distinction Matters
Suppose Copilot reviews a pull request and reports:
Approval assessment:
Ready to approve
That does not automatically mean the pull request has received an approval.
If Copilot approvals are disabled, it remains a review assessment.
If approvals are enabled, Copilot can submit the actual approving review.
So there are effectively two steps:
Assessment
|
v
"Ready to approve"
|
v
Approval configuration
|
v
Actual approval
This distinction is important when designing branch protection and merge rules.
Why Teams Should Not Enable It Everywhere Immediately
A repository is not just a collection of source files.
It can contain:
Application code
Infrastructure code
Database migrations
Deployment scripts
Security configuration
GitHub Actions workflows
Production configuration
A small change in one of these areas can have a very different impact from a change to a README file.
For example:
README.md
and:
.github/workflows/deploy-production.yml
may both be valid pull request changes, but they do not carry the same operational risk.
GitHub allows repository administrators to restrict which file paths are eligible for Copilot approvals to count toward merge requirements.
This provides a useful control for organizations that want to introduce AI approvals gradually.
Start With Repository Classification
Before enabling Copilot approvals, classify your repositories.
A simple model could be:
Repository Type | Example | Review Approach |
|---|---|---|
Documentation | Internal docs | Automated review may be sufficient |
Low-risk application | Internal tool | Copilot + tests |
Production service | Customer API | Copilot + human review |
Infrastructure | Deployment platform | Strong human review |
Security-sensitive | Authentication service | Multiple controls |
The exact classification should come from your organization's risk model.
The purpose is to avoid applying one review policy to every repository.
Use Custom Properties to Target Repositories
If your organization already uses GitHub repository custom properties, they can help identify groups of repositories.
For example:
criticality = high
environment = production
You can use repository metadata as part of broader governance and ruleset management. GitHub documents custom properties as a way to organize repositories and target them with rulesets.
A conceptual model could be:
Repository
|
v
Custom Properties
|
+-- criticality = high
+-- environment = production
+-- application-type = API
|
v
Repository Rules
|
v
Review Requirements
This is easier to maintain than manually managing hundreds of repository names.
Keep Human Approval for High-Risk Changes
One practical approach is to allow Copilot to review all pull requests but keep human approval requirements for sensitive repositories.
For example:
All Pull Requests
|
v
Copilot Review
|
+----------------+
| |
v v
Low Risk High Risk
| |
v v
Copilot + Tests Human Approval
This lets teams benefit from automated review without treating AI approval as the only gate for high-impact changes.
GitHub itself recommends maintaining human review and states that Copilot is not guaranteed to find every issue.
Require Automated Tests
An approval should not be the only signal that a pull request is ready.
A practical pipeline might look like:
Pull Request
|
v
Build
|
v
Unit Tests
|
v
Integration Tests
|
v
Security Checks
|
v
Copilot Review
|
v
Human Review
|
v
Merge
For low-risk repositories, some of these gates may be lighter.
For production systems, the checks should normally be stronger.
The important point is that code review and automated validation solve different problems.
Use Copilot Review Before Human Review
One useful workflow is to have Copilot review the pull request before a developer spends time on the detailed review.
For example:
Developer
|
v
Open PR
|
v
Copilot Review
|
v
Fix obvious issues
|
v
Human Review
|
v
Merge
GitHub recommends using Copilot as part of the pull request lifecycle while keeping human review.
This can make human review more focused.
Instead of spending the first few minutes finding obvious issues, the reviewer can concentrate on architecture, business logic, and design decisions.
Configure the Review Effort
GitHub currently provides different review effort levels.
The documented options include:
Lite
Balanced
Lite provides more targeted feedback.
Balanced performs deeper analysis of complex logic, security-sensitive code, and cross-service changes, and can use more AI credits.
For example:
Simple repository
|
v
Lite Review
Complex production service
|
v
Balanced Review
The review effort should match the repository and workload.
Do not assume that choosing the deepest review automatically makes the approval safe.
Review depth is only one part of the process.
Use Repository Instructions
Copilot code review can use repository custom instructions.
For example:
.github/copilot-instructions.md
You could define review expectations such as:
# Code Review Guidelines
- Check all database changes for backward compatibility.
- Flag authentication and authorization changes.
- Check for missing cancellation tokens in long-running async operations.
- Review public API changes carefully.
- Do not recommend suppressing compiler warnings without justification.
GitHub documents repository custom instructions as a way to customize Copilot's review behavior.
This is useful because generic code review rules do not always match the requirements of a specific application.
Security Rules Can Be Included
Security-sensitive repositories can provide additional review guidance.
For example:
# Security Review
When reviewing authentication code:
- Check authorization boundaries.
- Check token validation.
- Check privilege escalation risks.
When reviewing database access:
- Check parameterization.
- Check sensitive data handling.
- Check logging of confidential information.
Copilot can use repository instructions and, where configured and relevant, agent skills and MCP context during code review.
This does not guarantee that every security issue will be found.
It simply gives the review more project-specific context.
Be Careful With MCP and External Context
Copilot code review can use configured MCP servers and agent skills when they are relevant to the review.
That can provide additional context from systems outside the immediate source files.
For example, a pull request description might reference an incident or issue that is available through a configured MCP integration.
This can make reviews more context-aware, but it also means administrators should understand what external context is available to the reviewer.
GitHub provides repository-level controls for whether Copilot code review can use MCP tools.
Before enabling external context broadly, understand:
What data the tool exposes
Who can access it
What information can appear in review output
Whether the data contains confidential information
Which repositories are allowed to use it
Limit Which Files Can Count Toward Approval
This is one of the most practical controls.
GitHub allows repository administrators to specify file path patterns for Copilot approvals.
For example, an organization could decide that Copilot approvals can count only when every changed file matches approved patterns.
Conceptually:
Copilot Approval
|
v
Check Changed Files
|
+---- Allowed
| |
| v
| Can count
|
+---- Not allowed
|
v
Human review
GitHub currently supports up to 15 file globs for this configuration.
This can provide a useful middle ground between:
Copilot can never approve
and:
Copilot can approve everything
Protect Sensitive Paths
Consider a repository containing:
src/
tests/
docs/
.github/workflows/
infrastructure/
security/
You might decide that Copilot approval should not count when changes involve:
.github/workflows/
infrastructure/
security/
The exact patterns should match your repository structure.
The principle is simple:
Use stricter review requirements for files that can have a larger operational or security impact.
Re-Review After New Commits
One of the important safeguards is what happens after approval.
Suppose Copilot reviews:
Commit A
Commit B
and approves the pull request.
Then the developer pushes:
Commit C
The pull request has changed.
GitHub dismisses the Copilot approval when new commits are pushed after the approval, and a new review can be requested.
The workflow becomes:
Review
|
v
Approval
|
v
New Commit
|
v
Approval Dismissed
|
v
Re-review
This prevents an old approval from silently applying to new code.
Enable Review on New Pushes
For teams that want continuous review, GitHub supports automatic Copilot reviews on new pushes.
This can be configured as part of automatic code review.
A workflow can therefore look like:
Push
|
v
Copilot Review
|
v
Fix
|
v
Push
|
v
Copilot Re-review
This is useful for pull requests that change significantly during development.
Treat Copilot-Generated Code Differently
There is another important scenario: a pull request created by Copilot itself.
Copilot cloud agent can create and modify pull requests, but GitHub's current documentation requires human review before those pull requests are merged. The cloud agent cannot approve or merge its own pull request.
This gives a useful separation:
Copilot Agent
|
v
Writes Code
|
v
Pull Request
|
v
Review
|
v
Human Decision
|
v
Merge
Do not assume that enabling Copilot approvals means an AI-generated pull request can automatically approve itself.
The permissions and capabilities are separate.
Protect GitHub Actions Workflows
GitHub Actions workflows deserve special attention.
A pull request changing:
.github/workflows/build.yml
can change what code runs in your CI environment.
It may affect:
Secrets
Permissions
Deployment
Build commands
Third-party actions
Release processes
For this reason, many teams should require human review for workflow changes.
A useful rule might be:
Application source changes
|
v
Copilot + Tests
Workflow changes
|
v
Copilot + Tests + Human Approval
The exact policy should depend on your security model.
Protect Infrastructure Code
Infrastructure changes deserve similar treatment.
Examples include:
Terraform
Kubernetes manifests
Cloud infrastructure
Deployment scripts
Network configuration
IAM policies
A change that compiles successfully can still cause a production outage.
Automated code review can identify suspicious patterns, but infrastructure changes should be evaluated against the intended deployment architecture.
Do Not Ignore Business Logic
AI review tools are strongest when they can inspect code and available context.
But business requirements can exist outside the repository.
Consider:
Requirement:
Customers cannot cancel an order
after shipment begins.
The implementation might compile correctly and pass tests while still violating that rule.
A human reviewer who understands the product requirement may catch the problem.
This is one reason GitHub recommends supplementing Copilot feedback with human review.
Use Security Scanning Alongside Copilot
Copilot code review is not a replacement for dedicated security tooling.
A production repository may use:
Copilot Review
+
CodeQL
+
Dependency Scanning
+
Secret Scanning
+
Tests
Each tool looks at a different aspect of the codebase.
For example, GitHub Code Quality can combine rules-based CodeQL analysis, test coverage information, and optional merge gating.
The right combination depends on the repository and organization.
Measure the Results
If your organization enables Copilot approvals, do not stop at configuration.
Measure what happens.
Useful metrics include:
Review duration
Review comments
False-positive rate
Re-review frequency
Build failures
Escaped defects
Security findings
Human review time
You can compare the process before and after introducing Copilot review.
The goal is not simply to maximize the number of AI-approved pull requests.
The goal is to build a review process that catches problems without creating unnecessary friction.
Watch for False Confidence
One of the biggest risks with automated approval is psychological rather than technical.
A developer may see:
Approved
and assume:
The code must be correct.
That assumption is unsafe.
An approval means that Copilot's review reached an approval result under the configured review process.
It does not prove that:
The business requirement is correct
Production behavior is correct
Every security issue was detected
Performance is acceptable
The architecture is appropriate
External dependencies behave correctly
GitHub explicitly notes that Copilot can make mistakes and that its feedback should be validated carefully.
A Safer Adoption Model
A gradual rollout can reduce surprises.
Stage 1: Review Only
Start with:
Copilot Review
+
Human Approval
Measure the quality of the review.
Stage 2: Automatic Review
Enable automatic reviews for suitable repositories.
PR
|
v
Automatic Copilot Review
|
v
Human Approval
Stage 3: Limited AI Approval
Enable Copilot approvals for selected low-risk repositories or paths.
Selected Repository
|
v
Copilot Approval
|
v
Required Checks
|
v
Merge
Stage 4: Expand Carefully
Only expand after reviewing the results and adjusting repository rules.
This is easier to manage than enabling approvals across an entire enterprise on day one.
A Practical Policy Example
An organization could define something like:
Documentation
|
+-- Copilot review
+-- Automated checks
Internal applications
|
+-- Copilot review
+-- Tests
+-- Copilot approval allowed
Production applications
|
+-- Copilot review
+-- Tests
+-- Security checks
+-- Human approval
Infrastructure and security
|
+-- Copilot review
+-- Automated checks
+-- Human approval
This is not a universal policy.
It is an example of how an organization can separate review requirements according to risk.
Practical Checklist
Before enabling Copilot approvals, check:
Area | Question |
|---|---|
Repository | Is this repository suitable for AI approval? |
Code | What types of code can change? |
Tests | Are required tests enforced? |
Security | Are security checks independent of Copilot? |
Rules | How many approvals are required? |
Paths | Should some files require human approval? |
Instructions | Does Copilot have repository-specific guidance? |
Re-review | Are new pushes reviewed again? |
Agent PRs | Are Copilot-generated pull requests still human-reviewed? |
Monitoring | Are review quality and defects measured? |
This checklist gives teams a starting point for evaluating the workflow before changing merge policies.
Common Mistakes
Enabling Approval for Every Repository
Different repositories have different risks.
Removing Human Review
Copilot should not become the only reviewer for important code.
Ignoring Workflow Files
CI/CD configuration can be security-sensitive.
Treating Approval as Proof of Correctness
An approval is not a guarantee.
Forgetting New Commits
A new commit can invalidate the previous review.
Skipping Tests
Code review and automated testing serve different purposes.
Giving Copilot Too Much External Context
Review MCP and agent integrations carefully before enabling them across sensitive repositories.
Summary
GitHub Copilot can now submit approving pull request reviews when administrators enable the feature. Those approvals can also count toward repository merge requirements when that option is enabled. The capability is currently in public preview.
The safest way to use it is to treat AI approval as one part of a broader engineering process.
A practical workflow looks like:
Pull Request
|
v
Automated Tests
|
v
Copilot Review
|
v
Security Checks
|
v
Approval Rules
|
+---- Low Risk ----> Copilot Approval
|
+---- High Risk ---> Human Approval
|
v
Merge
Use repository-specific instructions, automated testing, security scanning, path restrictions, and appropriate human review to provide additional controls.
Also remember that Copilot-generated pull requests remain subject to human review and merge controls.
The useful way to introduce AI approvals is gradually: start with code review, measure its results, enable approvals for appropriate repositories or paths, and keep stronger human controls around production, infrastructure, security, and other sensitive changes.

Join the conversation! Your thoughts help the community grow.