Skip to content

build: bump libgit2 to include the WinHTTP Basic fallback STUD-81431 - #32

Merged
daniel-dumitrascu merged 2 commits into
developfrom
fix/winhttp-basic-challenge-fallback-STUD-81431
Oct 12, 2026
Merged

daniel-dumitrascu merged 2 commits into
developfrom
fix/winhttp-basic-challenge-fallback-STUD-81431

Conversation

@daniel-dumitrascu

@daniel-dumitrascu daniel-dumitrascu commented Oct 12, 2026 •

Copy link
Copy Markdown

Summary

Moves the libgit2 submodule from 7ba43f8d2 to 0c0dd3ddd, the current develop of UiPath/libgit2 (merge of UiPath/libgit2#18). This brings in the fix for clone/fetch/push over HTTPS failing on the WinHTTP build against GitHub Enterprise Managed Users organisations with failed to parse supported auth schemes: The operation identifier is not valid.

A second commit moves the win-arm64 CI build to the VS 2026 Arm runner, because GitHub's windows-11-arm image no longer has VS 2022 (see below).

Jira: STUD-81431

What the bump brings in

Commit Change
0686dcc04 winhttp: accept Basic challenges WinHTTP cannot parse
583df2c04 winhttp: derive Basic scheme length with CONST_STRLEN
8ba8aa9da, 67cd24a46 the fork's own GitHub Actions workflows only (runner images, CodeQL removal), not part of this build

The only source change is src/libgit2/transports/winhttp.c (+30 −2). It is compiled only into the Windows WinHTTP variants (libgit2.dll, libgit2_ssh.dll). The Schannel variants and the posix builds don't compile winhttp.c.

The submodule change is pointer-only, like 09377dc. GitHub's submodule view lists the fork's .github/workflows/*.yml files, but they belong to the fork; this repo's YAML changes only in the second commit below.

CI: win-arm64 runner (second commit)

The win-arm64 build started failing at cmake configure with Generator Visual Studio 17 2022 could not find any instance of Visual Studio. GitHub now serves the windows-11-arm label with the windows-11-vs2026-arm64 image, which has only VS 2026. The v9 release build on 2026-09-21 still got the VS 2022 image, and a re-run failed the same way.

The second commit pins the arm64 leg to windows-11-vs2026-arm, GitHub's explicit label for that image, with the Visual Studio 18 2026 generator. The image ships CMake 4.4.4, which supports that generator.

  • Arm64 DLLs: only these change compiler, from VS 2022 to VS 2026. libgit2 links the C runtime statically, so there is no new runtime dependency.
  • win-x64 (Studio): stays on windows-2022 / VS 2022, so its DLLs are built as before.

This is in the same PR on purpose: build.yml publishes a release on any develop push that touches the workflow, so a separate CI-only PR would mint its own natives-1.9.1-v10 without the fix.

Release

On merge, build.yml publishes the natives-1.9.1-v<N> release, expected natives-1.9.1-v10.

Testing

All of the following used DLLs built from 583df2c04, which has an identical tree to 0c0dd3ddd:

  • Build: build.libgit2.ps1 -vs '17 2022' -Platform win-x64, the same settings as CI. All four Windows variants built, and the HTTPS-backend assertions pass.
  • Scenarios: 55 scenarios against natives 1.9.1-v9 and against the new DLLs, using a local smart-HTTP server, an HTTPS server and a forward proxy:
    • 37 identical: Basic, NTLM/Negotiate, wrong-password re-prompt, URL credentials, unusable challenges, self-signed HTTPS, redirects, proxies including CONNECT, Schannel and ssh.exe variants, SSH and local clones, github.com.
    • 13 fixed: every GitHub EMU-style case.
    • 5 changed, still failures: behaviour now matches a normal Basic server. Details are in UiPath/libgit2#18.
  • Studio end to end: with the new DLLs in a local Studio build, clone and commit-and-push against a server that sends the EMU challenge worked through Studio's UI. The server saw Basic credentials, git-upload-pack and git-receive-pack, and the process loaded libgit2.dll from the new build.

Follow-up

  1. UiPath/libgit2sharp: roll natives.lock.json to the new natives-1.9.1-v<N> release, like chore: bump native binaries pin to natives-1.9.1-v9 STUD-81430 libgit2sharp#32.
  2. Feed: push LibGit2Sharp.UiPath 1.9.1-v<N> to the internal feed.
  3. Studio: bump LibGit2Sharp.UiPath in Directory.Build.studio.targets.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@uipathepixa-dogfood

uipathepixa-dogfood Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Epixa-Dogfood Review

Review unavailable: required_pr_review_evidence_unavailable

Not reviewed: .github/workflows/build.yml, libgit2

What this PR does

The pull request author describes the intended change as follows: build: bump libgit2 to include the WinHTTP Basic fallback STUD-81431

This review did not reuse a local review of this change. Set up Epixa local review.

Full review: b94b736 0 findings

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@daniel-dumitrascu
daniel-dumitrascu merged commit 632cb5a into develop Oct 12, 2026
9 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