public BitBucketScanner(
            ProjectFileParser projectFileParser,
            string account,
            string key,
            string secretKey)
        {
            _projectFileParser = projectFileParser;
            if (string.IsNullOrWhiteSpace(key))
            {
                throw new ArgumentNullException(nameof(key));
            }
            if (string.IsNullOrWhiteSpace(secretKey))
            {
                throw new ArgumentNullException(nameof(secretKey));
            }
            _bbAccount = account ?? throw new InvalidOperationException(nameof(account));

            _client = new SharpBucketV2();
            _client.OAuth2ClientCredentials(key, secretKey);
        }
        public GitHubScanner(
            ProjectFileParser projectFileParser,
            string organization,
            string accessToken,
            string repos)
        {
            _projectFileParser = projectFileParser;

            var proxy      = new WebProxy();
            var connection = new Connection(
                new ProductHeaderValue(AppName),
                new HttpClientAdapter(() => HttpMessageHandlerFactory.CreateDefault(proxy)));

            var token = accessToken ?? throw new InvalidOperationException(
                                  $"Access token can't be empty. For unauthenticated requests rate limit = 60 calls per hour!");

            _client = new GitHubClient(new ProductHeaderValue(AppName))
            {
                Credentials = new Credentials(token),
            };

            if (string.IsNullOrWhiteSpace(organization))
            {
                throw new ArgumentNullException(nameof(organization));
            }
            _organization = organization;

            if (!string.IsNullOrWhiteSpace(repos))
            {
                _repos = new RepositoryCollection();
                var reposArr = repos.Split(',', StringSplitOptions.RemoveEmptyEntries);
                foreach (var repo in reposArr)
                {
                    var trimmedRepo = repo.Trim();
                    _repos.Add(organization, trimmedRepo);
                }
            }
        }