you can obfuscate, try to build to il2pp but in the end, everything that the client has on their device can be decompiled.
I'd recommend having a good NDA in your contract for this,
as for projects, my old company handled permission for projects on a user basis, so regardless if you self host your git repo or you have an external host, only add the user of the intern to the projects they actually have to work on
I've seen people that reconstructed whole projects from windows builds. Models, scenes.
shaders might not be possible, not sure. I haven't modded unity before, but if you look for unity modding and decompiling, you might see some people doing that with popular projects
