While playing with your PR, I detected a strange behaviour. Applying the following patch makes the test fail:

```diff
diff --git a/LibGit2Sharp.Tests/RemoteFixture.cs b/LibGit2Sharp.Tests/RemoteFixture.cs
index 02a293b..89f0d55 100644
--- a/LibGit2Sharp.Tests/RemoteFixture.cs
+++ b/LibGit2Sharp.Tests/RemoteFixture.cs
@@ -56,8 +56,11 @@ public void CanSetTagFetchMode(TagFetchMode tagFetchMode)
                 const string name = "upstream";
                 const string url = "https://github.com/libgit2/libgit2sharp.git";
 
-                repo.Network.Remotes.Add(name, url);
+                Remote created = repo.Network.Remotes.Add(name, url);
                 Remote remote = repo.Network.Remotes[name];
+
+                Assert.Equal(created.TagFetchMode, remote.TagFetchMode);
+
                 Assert.NotNull(remote);
 
                 Remote updatedremote = repo.Network.Remotes.Update(remote,
```

I've submitted libgit2/libgit2#1623 in order to solve this.

/cc @carlosmn