They can’t see any of the repos, and don’t even see the repos icon on
the left (they do see overview, boards, pipelines and artifacts
According to your description, these users should only have stakeholder access.
Actually, to use Code you need be qualified with two things: Permission , Access Level.
Have you checked that User’s Access Level you are? Is that user a Stakeholder in your organization?
User with Stakeholder access level, he will not be able to use Azure Repos for your private project.
You could check this info from Organization Setting– Users–Access Level
For more detail concept you could refer our official link: https://learn.microsoft.com/en-us/azure/devops/organizations/security/get-started-stakeholder?view=azure-devops&tabs=agile-process
Please change the user access level to Basic and above, then this user should be able to see and access these repos.
Note: To change access level, you must have Project Collection Administrator or organization Owner permissions in Azure DevOps.
Hope this helps.