I love where you're going with the branch remote run feature. It's going to really help our development process a lot.
One thing stuck out while reading the docs: currently, it sounds like builds triggered by the branch remote run feature are always personal builds. I'd like to use this in a slightly different way:
1. We'll lock down access to our git master branch so developers don't commit to it, and instead all developers will push changes to their TeamCity-monitored branch.
2. Upon detecting changes in a given developer's branch, TeamCity will run the build configuration with those changes
3. As a first step of our build configuration, we will merge master into the developer's branch, so that we ensure we're testing against the latest code
4. At the end of our build configuration, if the build is successful (and non-personal), we will push the successfully-tested changes to master, thus making the developer's changes available to everyone else.
Clearly, some of these steps could be pulled into TeamCity as first-class features, but if I could configure the new 'branch remote run' feature to run non-personal builds, we can do all the rest on our side.
I could imagine a rule like so:
refs/remote-run/TEAMCITY_USERNAME/personal/TOPIC => a personal build
refs/remote-run/TEAMCITY_USERNAME/TOPIC => a non-personal build