The "new" Microsoft is definitely a better home for GitHub than the "old" Microsoft that wanted to crush the open source world. So far as I can tell, Microsoft is very keen to advocate for anything and everything that might run on its Azure cloud, so this suggests that not only will they move GitHub hosting there, but also they'll compete in various ways with Travis-CI and other such things.

From the university perspective, GitHub has been very good to us. They offer a free service called GitHub Classroom which gives unlimited free private repos to classes. It's really a thin front end where you provide students with a "clone link" which they click and then it copies your master repo for them. After that, it's just vanilla GitHub, so it integrates nicely with a variety of development tools (we use IntelliJ for Java) and CI tools (we use Travis-CI **) as well as providing all the usual GitHub APIs (I use the "events API" to learn when students actually push their commits, and I've already caught one student who falsified the commit timestamps in an attempt to submit work late). In my class, students work solo. In others, all the collaboration features come into play, including GitHub's code review features.

Needless to say, students prefer this because it's "real" and the load that we bring to bear on GitHub's servers five minutes prior to the deadline is negligible, versus our previous in-house Subversion server that would regularly collapse under deadline load.

GitHub's motivation here is identical to Microsoft's historical motivation: get their tools in front of students who will then go out into industry and expect to continue use them, even though industry will have to pay real money for it. And because of GitHub's support of open source projects, I had no problem using them in my class, since students could benefit from GitHub without ever having to be a paying customer. And, supposedly, GitHub does indeed have paying customers for their various enterprise services. And that's great since it keeps the lights on.

So... of course there are scenarios where GitHub turns evil under Microsoft's watch, but then part of the magic of Git is how easy it is to pick up and move elsewhere. It would be very easy to switch from GitHub to GitLab or elsewhere. It would be similarly easy to dump Travis-CI for a competing CI service. As to student privacy, I'm imagining that GitHub will go out of its way to avoid running afoul of relevant laws, especially with Microsoft's deep pockets on the line.


** Travis-CI provides us for free with one concurrent build at a time. The full build seems to take their servers about three minutes to run, of which one minute is useful work and the rest is Travis-CI being slow at setup and teardown. This is tolerable except near deadlines, where the backlog takes hours to resolve. Students are encouraged to run their unit tests locally, but there's a certain reassurance they get from seeing the tests pass on Travis, since that's what we use to grade them. I'll note that Travis is currently offering me a substantial improvement in the number of concurrent builds which I'll be rolling out in the fall. They want our students to get used to them for all the same reasons that GitHub does. And again, I'm perfectly happy using this in our classes.