I don't understand the pain - the logic is

```
if (Git) { return new GitClient(...); }
return new GithubClient(...);
```

I could add a separate else if (Github) if that would help understandability?

The GithubClient class was created a long time ago by someone else, I'd rather not rename it now.