It's for getting credentials to set up the underlying transport (needed for things like accessing GitHub repositories, or password-protected ones).

Yeah, I plan to do that (as I did in #223), but I'm first fiddling with the "main" method, because I'm not sure I got it right and I don't want to have to rewrite 3 declarations on each change.