Probably alias it to "master" somehow.
Basically we want "main" branches to appear as "master" in the UI, but all Git operations need to be done against "main".
The main place this is an issue is in the repositories.branch column. I think we should add a second column like repositories.git_branch, which has the *real* branch used in Git for all those operations. When creating/updating repositories rows, .branch will normalize "main" to "master".
So...I messed up on one part, and that was instead of updating the existing "master" rows, it deleted them and created new "main" ones. Which means we lost all the dependencies, vulnerabilities, and most importantly logs of all "master" repos... sorry about that :/
But the logs are linked from many places :-(
In the old log system they were standalone HTML files, I would just delete them whenever we got low on disk space. Now they're all interconnected in the database, which means whenever the Repository object is deleted, the logs are too. So if the repository is archived, it'll get deleted. When REL1_31 is removed in a few months, all those logs will get deleted. Overall I think this is fine, and similar to the CI logs which expire after a few weeks. BUT there are some times we do want to keep specific logs for longer. One option could be to have a button that turns the log into a Phabricator paste (since we have straightforward Phab access with @LibUp-bot)?