Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Oct 30, 2025

GitHub Copilot uses shallow clones which break Nerdbank.GitVersioning. Similar to the existing Dependabot auto-detection, this adds automatic detection of GitHub Copilot environments to disable the git engine without manual configuration.

Implementation

  • Detection: Added IsGitHubCopilotEnvironment() that checks for GITHUB_ACTOR=copilot-swe-agent[bot]
  • Integration: Extended GetEffectiveGitEngine() to auto-disable when Copilot is detected and NBGV_GitEngine is not explicitly set
  • Precedence: NBGV_GitEngine environment variable overrides auto-detection (same as Dependabot)

Tests

Added three test scenarios:

  • Copilot environment triggers auto-disable
  • Other GITHUB_ACTOR values don't trigger (5 cases: user, dependabot[bot], copilot-swe-agent, COPILOT-SWE-AGENT[BOT], empty)
  • NBGV_GitEngine overrides Copilot detection

Updated existing tests to clear GITHUB_ACTOR for isolation.

Documentation

Updated shallow-cloning-agents.md to document auto-detection and note manual configuration as optional fallback.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 3dovsblobprodeus2188.blob.core.windows.net
    • Triggering command: dotnet restore --no-dependencies /home/REDACTED/work/Nerdbank.GitVersioning/.codeql-scratch/dbs/csharp/working/32A0A2D38A721DD2A3E59F6279CF8961/missingpackages_workingdir --packages /home/REDACTED/work/Nerdbank.GitVersioning/.codeql-scratch/dbs/csharp/working/missingpackages /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile /home/REDACTED/work/Nerdbank.GitVersioning/.codeql-scratch/dbs/csharp/working/nugetconfig/nuget.config --force (dns block)
  • aka.ms
    • Triggering command: curl -I -sSL --retry 5 --retry-delay 2 --connect-timeout 15 REDACTED (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>Self-hosted ARC for GitHub Copilot prefers NBGV_GitEngine=Disabled</issue_title>
<issue_description>Similar to the Dependabot issues the self-hosted GitHub Copilot flow has gaps in functionality at the organization and enterprise management level to set environment variables. As a result it would be ideal of Nerdbank.GitVersioning was smart enough to detect if it is running in a GitHub Copilot context and disable itself.

Some environment variables that our team members have found:
GITHUB_WORKFLOW=Copilot
GITHUB_ACTOR=copilot-swe-agent[bot]
GITHUB_JOB=copilot

There are workarounds such as setting the NBGV_GitEngine variable to Disabled in our different k8s runner scale sets, removing the package from GlobalPackageReference if env var exists, or updating settings per repository.

Thoughts on this one?</issue_description>

<agent_instructions>Let's fix this by doing something like #1284, looking for GITHUB_ACTOR=copilot-swe-agent[bot] as an environment variable.</agent_instructions>

Comments on the Issue (you are @copilot in this section)

@AArnott How about the Github Copilot workaround I document [here](https://dotnet.github.io/Nerdbank.GitVersioning/docs/shallow-cloning-agents.html). Would that work for you? @AArnott Ok, let's do something like https://github.com//pull/1284, looking for `GITHUB_ACTOR=copilot-swe-agent[bot]` as an environment variable.

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Fix NBGV_GitEngine variable detection in Copilot context Auto-disable git engine for GitHub Copilot environments Oct 30, 2025
Copilot AI requested a review from AArnott October 30, 2025 14:54
Copilot finished work on behalf of AArnott October 30, 2025 14:54
@AArnott AArnott marked this pull request as ready for review October 30, 2025 15:19
@AArnott AArnott enabled auto-merge October 30, 2025 15:20
@AArnott AArnott added this pull request to the merge queue Oct 30, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Oct 30, 2025
@AArnott AArnott added this pull request to the merge queue Oct 31, 2025
Merged via the queue into main with commit 44c7f5b Oct 31, 2025
23 checks passed
@AArnott AArnott deleted the copilot/fix-nbgv-gitengine-issue branch October 31, 2025 04:00
This was referenced Nov 10, 2025
microsoft-github-policy-service bot pushed a commit to Azure/template-reference-generator that referenced this pull request Nov 16, 2025
Updated
[Nerdbank.GitVersioning](https://github.com/dotnet/Nerdbank.GitVersioning)
from 3.8.118 to 3.9.50.

<details>
<summary>Release notes</summary>

_Sourced from [Nerdbank.GitVersioning's
releases](https://github.com/dotnet/Nerdbank.GitVersioning/releases)._

## 3.9.50

## What's Changed
* Add `versionHeightOffsetAppliesTo` property to version.json by
@​Copilot in dotnet/Nerdbank.GitVersioning#1279
* Fix `nbgv prepare-release` command to honor inheriting version.json
files by @​AArnott in
dotnet/Nerdbank.GitVersioning#1281
* Automatically disable git engine for Dependabot environments by
@​Copilot in dotnet/Nerdbank.GitVersioning#1284
* Add --what-if switch to nbgv tag command to preview tag names by
@​Copilot in dotnet/Nerdbank.GitVersioning#1287
* Auto-disable git engine for GitHub Copilot environments by @​Copilot
in dotnet/Nerdbank.GitVersioning#1291
* Allow uppercase letters in pre-release version identifiers by
@​Copilot in dotnet/Nerdbank.GitVersioning#1293

## New Contributors
* @​micheloliveira-com made their first contribution in
dotnet/Nerdbank.GitVersioning#1277

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.8.118...v3.9.50

## 3.9.37-alpha

## What's Changed
* Auto-disable git engine for GitHub Copilot environments by @​Copilot
in dotnet/Nerdbank.GitVersioning#1291


**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.9.32-alpha...v3.9.37-alpha

## 3.9.32-alpha

## What's Changed

* Automatically disable git engine for Dependabot environments by
@​Copilot in dotnet/Nerdbank.GitVersioning#1284
* Add --what-if switch to nbgv tag command to preview tag names by
@​Copilot in dotnet/Nerdbank.GitVersioning#1287

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.9.17-alpha...v3.9.32-alpha

## 3.9.17-alpha

## What's Changed
* Fix `nbgv prepare-release` command to honor inheriting version.json
files by @​AArnott in
dotnet/Nerdbank.GitVersioning#1281


**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.9.15-alpha...v3.9.17-alpha

## 3.9.15-alpha

## What's Changed

* Add `versionHeightOffsetAppliesTo` property to version.json by
@​Copilot in dotnet/Nerdbank.GitVersioning#1279

## New Contributors
* @​micheloliveira-com made their first contribution in
dotnet/Nerdbank.GitVersioning#1277

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.8.118...v3.9.15-alpha

Commits viewable in [compare
view](dotnet/Nerdbank.GitVersioning@v3.8.118...v3.9.50).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Nerdbank.GitVersioning&package-manager=nuget&previous-version=3.8.118&new-version=3.9.50)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
jeffkl pushed a commit to jeffkl/vstest-loggers that referenced this pull request Nov 17, 2025
Updated
[Nerdbank.GitVersioning](https://github.com/dotnet/Nerdbank.GitVersioning)
from 3.7.115 to 3.9.50.

<details>
<summary>Release notes</summary>

_Sourced from [Nerdbank.GitVersioning's
releases](https://github.com/dotnet/Nerdbank.GitVersioning/releases)._

## 3.9.50

## What's Changed
* Add `versionHeightOffsetAppliesTo` property to version.json by
@​Copilot in dotnet/Nerdbank.GitVersioning#1279
* Fix `nbgv prepare-release` command to honor inheriting version.json
files by @​AArnott in
dotnet/Nerdbank.GitVersioning#1281
* Automatically disable git engine for Dependabot environments by
@​Copilot in dotnet/Nerdbank.GitVersioning#1284
* Add --what-if switch to nbgv tag command to preview tag names by
@​Copilot in dotnet/Nerdbank.GitVersioning#1287
* Auto-disable git engine for GitHub Copilot environments by @​Copilot
in dotnet/Nerdbank.GitVersioning#1291
* Allow uppercase letters in pre-release version identifiers by
@​Copilot in dotnet/Nerdbank.GitVersioning#1293

## New Contributors
* @​micheloliveira-com made their first contribution in
dotnet/Nerdbank.GitVersioning#1277

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.8.118...v3.9.50

## 3.9.37-alpha

## What's Changed
* Auto-disable git engine for GitHub Copilot environments by @​Copilot
in dotnet/Nerdbank.GitVersioning#1291


**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.9.32-alpha...v3.9.37-alpha

## 3.9.32-alpha

## What's Changed

* Automatically disable git engine for Dependabot environments by
@​Copilot in dotnet/Nerdbank.GitVersioning#1284
* Add --what-if switch to nbgv tag command to preview tag names by
@​Copilot in dotnet/Nerdbank.GitVersioning#1287

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.9.17-alpha...v3.9.32-alpha

## 3.9.17-alpha

## What's Changed
* Fix `nbgv prepare-release` command to honor inheriting version.json
files by @​AArnott in
dotnet/Nerdbank.GitVersioning#1281


**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.9.15-alpha...v3.9.17-alpha

## 3.9.15-alpha

## What's Changed

* Add `versionHeightOffsetAppliesTo` property to version.json by
@​Copilot in dotnet/Nerdbank.GitVersioning#1279

## New Contributors
* @​micheloliveira-com made their first contribution in
dotnet/Nerdbank.GitVersioning#1277

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.8.118...v3.9.15-alpha

## 3.8.118

## Fixes

* Don't try to disable CA2243 warnings in the generated version info
files for F# by @​Numpsy in
dotnet/Nerdbank.GitVersioning#1174
* Catch a more general JsonException. by @​ANGEL-OF-DEV in
dotnet/Nerdbank.GitVersioning#1191
* Retarget links to migrated docs by @​bencemali in
dotnet/Nerdbank.GitVersioning#1193
* Check MSBuild items with case insensitivity by @​AArnott in
dotnet/Nerdbank.GitVersioning#1213
* Fix inconsistent CLI output format for GitCommitDate by @​Copilot in
dotnet/Nerdbank.GitVersioning#1246
* Fix version height computed as 0 when project path has non-canonical
casing by @​Copilot in
dotnet/Nerdbank.GitVersioning#1244
* When generating the GitCommitDate field in the AssemblyInfo for F#, d…
by @​Numpsy in
dotnet/Nerdbank.GitVersioning#1253
* Only do Android version check on applications by @​dotMorten in
dotnet/Nerdbank.GitVersioning#1256
* Fix `nbgv set-version` to write to the best version.json file in scope
by @​AArnott in
dotnet/Nerdbank.GitVersioning#1264

## Enhancements

* Add msbuild-provided prerelease identifiers by @​AArnott in
dotnet/Nerdbank.GitVersioning#1153
* Add support for stamping version on server.json for MCP servers with
0.0.0-placeholder replacement by @​Copilot in
dotnet/Nerdbank.GitVersioning#1270 and by
@​AArnott in dotnet/Nerdbank.GitVersioning#1271
* Add option to set / skip CloudBuildNumber by @​MattKotsenas in
dotnet/Nerdbank.GitVersioning#1190
* Add Central Package Management (CPM) support to nbgv install command
by @​Copilot in
dotnet/Nerdbank.GitVersioning#1208
* Add --public-release argument to nbgv get-version command by @​Copilot
in dotnet/Nerdbank.GitVersioning#1245
* Invoke PrivateP2PCaching.proj fewer times by @​AArnott in
dotnet/Nerdbank.GitVersioning#1263

## Other changes

* Update dependency Cake.Core to v5 by @​renovate[bot] in
dotnet/Nerdbank.GitVersioning#1183

## New Contributors
* @​ANGEL-OF-DEV made their first contribution in
dotnet/Nerdbank.GitVersioning#1191
* @​bencemali made their first contribution in
dotnet/Nerdbank.GitVersioning#1193
* @​Copilot made their first contribution in
dotnet/Nerdbank.GitVersioning#1208
* @​dotMorten made their first contribution in
dotnet/Nerdbank.GitVersioning#1256
* @​emmanuel-ferdman made their first contribution in
dotnet/Nerdbank.GitVersioning#1145

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.7.115...v3.8.118

## 3.8.106-alpha

## What's Changed

### Enhancements

* Add option to set / skip CloudBuildNumber by @​MattKotsenas in
dotnet/Nerdbank.GitVersioning#1190
* Add Central Package Management (CPM) support to nbgv install command
by @​Copilot in
dotnet/Nerdbank.GitVersioning#1208
* Add --public-release argument to nbgv get-version command by @​Copilot
in dotnet/Nerdbank.GitVersioning#1245
* Invoke PrivateP2PCaching.proj fewer times by @​AArnott in
dotnet/Nerdbank.GitVersioning#1263

### Fixes

* Catch a more general JsonException. by @​ANGEL-OF-DEV in
dotnet/Nerdbank.GitVersioning#1191
* Retarget links to migrated docs by @​bencemali in
dotnet/Nerdbank.GitVersioning#1193
* Check MSBuild items with case insensitivity by @​AArnott in
dotnet/Nerdbank.GitVersioning#1213
* Fix inconsistent CLI output format for GitCommitDate by @​Copilot in
dotnet/Nerdbank.GitVersioning#1246
* Fix version height computed as 0 when project path has non-canonical
casing by @​Copilot in
dotnet/Nerdbank.GitVersioning#1244
* When generating the GitCommitDate field in the AssemblyInfo for F#, d…
by @​Numpsy in
dotnet/Nerdbank.GitVersioning#1253
* Only do Android version check on applications by @​dotMorten in
dotnet/Nerdbank.GitVersioning#1256
* Fix `nbgv set-version` to write to the best version.json file in scope
by @​AArnott in
dotnet/Nerdbank.GitVersioning#1264

### Other changes

* Update dependency Cake.Core to v5 by @​renovate[bot] in
dotnet/Nerdbank.GitVersioning#1183

## New Contributors
* @​ANGEL-OF-DEV made their first contribution in
dotnet/Nerdbank.GitVersioning#1191
* @​bencemali made their first contribution in
dotnet/Nerdbank.GitVersioning#1193
* @​Copilot made their first contribution in
dotnet/Nerdbank.GitVersioning#1208
* @​dotMorten made their first contribution in
dotnet/Nerdbank.GitVersioning#1256

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.8.38-alpha...v3.8.106-alpha

## 3.8.38-alpha

## Fixes

* Don't try to disable CA2243 warnings in the generated version info
files for F# by @​Numpsy in
dotnet/Nerdbank.GitVersioning#1174

## Enhancements

* Add msbuild-provided prerelease identifiers by @​AArnott in
dotnet/Nerdbank.GitVersioning#1153

## New Contributors
* @​emmanuel-ferdman made their first contribution in
dotnet/Nerdbank.GitVersioning#1145

**Full Changelog**:
dotnet/Nerdbank.GitVersioning@v3.7.115...v3.8.38-alpha

Commits viewable in [compare
view](dotnet/Nerdbank.GitVersioning@v3.7.115...v3.9.50).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Nerdbank.GitVersioning&package-manager=nuget&previous-version=3.7.115&new-version=3.9.50)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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.

Self-hosted ARC for GitHub Copilot prefers NBGV_GitEngine=Disabled

2 participants