You are a champion.
I've had a quick glance over your vsts branch and have just a couple of comments (keep in mind I don't know Python).
The title of the plugin seems to be 'Visual Studio' (see plugin.py#L26). This seems misleading. Perhaps VSTS or TFS or VSTS/TFS would be more appropriate.
It looks like the config for the plugin only supports an account name (see plugin.py#L59) implying that this will only work for VSTS. This should really support on-premise TFS app tiers (exposed to the internet) by allowing the address of the TFS/VSTS webservices rather than just the account name. For example, a typical config of an on-premise TFS endpoint would be https://tfs.mycompany.com:8080/tfs.
Looks like the skeleton code is going to try to write to the history field (see client.py#L62). The history field is immutable. The closest to this would be the comment field although putting information in the description field would probably be more appropriate.
Thank you so much for working on this. It looks great