// node access to ghes/gh public async Task <bool> RunCheck(string url, string pat) { await File.AppendAllLinesAsync(_logFile, HostContext.WarnLog()); await File.AppendAllLinesAsync(_logFile, HostContext.CheckProxy()); // Request to github.com or ghes server var urlBuilder = new UriBuilder(url); if (UrlUtil.IsHostedServer(urlBuilder)) { urlBuilder.Host = $"api.{urlBuilder.Host}"; urlBuilder.Path = ""; } else { urlBuilder.Path = "api/v3"; } var checkNode = await CheckNodeJs(urlBuilder.Uri.AbsoluteUri, pat); var result = checkNode.Pass; await File.AppendAllLinesAsync(_logFile, checkNode.Logs); // try fix SSL error by providing extra CA certificate. if (checkNode.SslError) { var downloadCert = await HostContext.DownloadExtraCA(urlBuilder.Uri.AbsoluteUri, pat); await File.AppendAllLinesAsync(_logFile, downloadCert.Logs); if (downloadCert.Pass) { var recheckNode = await CheckNodeJs(urlBuilder.Uri.AbsoluteUri, pat, extraCA : true); await File.AppendAllLinesAsync(_logFile, recheckNode.Logs); if (recheckNode.Pass) { await File.AppendAllLinesAsync(_logFile, new[] { $"{DateTime.UtcNow.ToString("O")} Fixed SSL error by providing extra CA certs." }); } } } return(result); }
// git access to ghes/gh public async Task <bool> RunCheck(string url, string pat) { await File.AppendAllLinesAsync(_logFile, HostContext.WarnLog()); await File.AppendAllLinesAsync(_logFile, HostContext.CheckProxy()); if (string.IsNullOrEmpty(_gitPath)) { await File.AppendAllLinesAsync(_logFile, new[] { $"{DateTime.UtcNow.ToString("O")} Can't verify git with GitHub.com or GitHub Enterprise Server since git is not installed." }); return(false); } var checkGit = await CheckGit(url, pat); var result = checkGit.Pass; await File.AppendAllLinesAsync(_logFile, checkGit.Logs); // try fix SSL error by providing extra CA certificate. if (checkGit.SslError) { await File.AppendAllLinesAsync(_logFile, new[] { $"{DateTime.UtcNow.ToString("O")} Try fix SSL error by providing extra CA certificate." }); var downloadCert = await HostContext.DownloadExtraCA(url, pat); await File.AppendAllLinesAsync(_logFile, downloadCert.Logs); if (downloadCert.Pass) { var recheckGit = await CheckGit(url, pat, extraCA : true); await File.AppendAllLinesAsync(_logFile, recheckGit.Logs); if (recheckGit.Pass) { await File.AppendAllLinesAsync(_logFile, new[] { $"{DateTime.UtcNow.ToString("O")} Fixed SSL error by providing extra CA certs." }); } } } return(result); }