No, I have not done it yet - oddly enough I have other things needing doing. The information needed to do it is in this thread:
https://forum.xda-developers.com/t/guide-flash-magisk-on-android-12.4242959/ Unfortunately since it started during the 12 beta program, and there was a lot of trial and error, it is necessary to work through the long thread and sort out the process - which appears to be fairly simple (if inflexible).
When updating or upgrading there are always two paths to take: 1) take the OTA that is offered (after unrooting), or 2) flashing the full factory image. Generally speaking, OTAs are designed to keep the user data untouched [edit: not untouched but just converted where needed for the new system] and the factory image is intended to put the phone to factory condition (i.e. no user data present - starts from scratch). Updates (i.e. not upgrades between Android major versions) over-the-air (OTA) are replacing blocks of the stored image, which is very efficient, but requires a pristine stored image (hence the need to unroot to pass the check). Upgrades (new Android versions) seem to download the entire image, IIUC, and then clean up any data (like config files) that are not compatible with the new system. Sometimes the result has been less than perfect, although it is mostly reliable. Ultimately a factory image is the guarantee of getting a known good system, which can then be set up to the user's taste. Backing up user data (e.g. with Titanium Backup) and restoring can make this easier but again, config files from the previous system if restored on the new system can cause problems. Some people prefer to flash the factory image and reinstall the apps as new to get the highest confidence in the result. Most of us just take the OTA and trust the process, prepared to wipe config files or even flash the full factory image if there is a problem. Your choice.
After I write a procedure for myself, and successfully upgrade, I will post it.