Skip to content

GitHub - Error cloning private repository

When trying to clone a GitHub repository that's not publicly viewable, jadegit gives an error saying its unable to fetch a commit. image

Interestingly, it seems to start off doing what it should. It asks for the user credentials using the configured git manager, and passes them along when doing the initial refs upload-pack query

10/24/25 21:26:14 02fcc-27000 <debug> Sending GET request to https://github.com/<repo url>/info/refs?service=git-upload-pack
10/24/25 21:26:14 02fcc-27000 <trace> Sending request:
GET /<repo url>/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/2.0 (libgit2 1.9.0)
Host: github.com
Accept: */*
Authorization: Basic bWVlY...<snip>

But then it does a second GET request - presumably to fetch the HEAD commit - and fails because it doesn't pass along the auth token.

10/24/25 21:26:15 02fcc-27000 <debug> Sending GET request to https://github.com/<repo url>/info/refs?service=git-upload-pack
10/24/25 21:26:15 02fcc-27000 <debug> Connecting to remote github.com port 443
10/24/25 21:26:15 02fcc-27000 <trace> Sending request:
GET /<repo url>/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/2.0 (libgit2 1.9.0)
Host: github.com
Accept: */*


10/24/25 21:26:16 02fcc-27000 <trace> Received:
HTTP/1.1 401 Unauthorized
Server: GitHub-Babel/3.0
Content-Security-Policy: default-src 'none'; sandbox
Content-Type: text/plain; charset=UTF-8
www-authenticate: Basic realm="GitHub"
Content-Length: 21
Date: Fri, 24 Oct 2025 08:26:16 GMT
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-GitHub-Request-Id: B1F9:2CC01D:9D7A5A:BC3CCE:68FB3827

Repository not found.
10/24/25 21:26:16 02fcc-27000 [ERROR] Failed to fetch commit (6337bd1e453205970fb527b80171c58687e4d8ed)
 remote authentication required but no callback set (-16)

Not sure if there is just an additional callback you just need to add, or if its a libgit thing specifically, but raising it for you to look at just in case.


Workarounds available are:

  • switching the repo to public, cloning it, then switching it back to private. Pushing/Pulling work fine when repo is private. This is actually more practical than it sounds if providing other devs a pre-initialised copy of a JADE database.
  • cloning outside of jadegit and then cloning that folder. Does mean double handling to push things to the remote repo though.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information