Every time there is an update to Visual Studio Code, I get a nice notification telling me that it will update after restart or use the 'update now' button.

However, it never updates. And gives me the same message after a short while.
I had this problem over and over and it was driving me nuts.

Finally I found a solution.
It seems some files are having the wrong owners on your disk if you have this problem. And there is a way to fix it!

It happens because the com.apple.quarantine gets recursively set on the application bundle and Gatekeeper then launches Code from a temporary path, which isn't writable by the user.

There are two steps for the fix:

First, fix the permissions in the ShipIt logs. If you ever got the permission escalation dialog, you'll be stuck in here.
Then, recursively remove the com.apple.quarantine attribute from Code.

sudo chown $USER ~/Library/Caches/com.microsoft.VSCode.ShipIt/*

xattr -dr com.apple.quarantine /Applications/Visual\ Studio\ Code.app