In the past I had used one repo/many assignments but switched to one repo/one assignment.
For the one repo/many assignments I had to manually update the master source repository over the semester and reset at the beginning of a new semester. Students would git pull from the master source but if the made mistakes, merge conflicts would occur and it would get messy. Automatic tests (via actions) were also not easy to implement (as stated by @pattacini ).
I am now using GItHub Classroom with one repo/one assignment, which is overall a cleaner set up. Having large numbers of repos in the org is a bit annoying but a minor issue as one can just use consistent naming and filter. A major issue is if you made a mistake in the template repo and then want to update all student repositories. I haven’t found a better way than cloning all student repos, manually fixing, and pushing back to each individual student repo (using shell scripts).