Use GithubClient inside GithubProtocolFetcherStrategy to improve readability and remove deplication.
Use GithubService as a proxy for GithubClient in endpoint. This caches any values from the questionnaire.
Created CachedFunction that caches the result of a throwing function for a given amount of time.
Added more checks on the request being performed: number of bytes for content length, more strict URL validation (only https://api.github.com/ is allowed now instead of for example http://api.github.com.my.domain:9001/.
https://api.github.com/
is allowed now instead of for examplehttp://api.github.com.my.domain:9001/
.