private async Task <bool> IsRepositoryOriginUrlMatch(IExecutionContext context, string repositoryPath, Uri expectedRepositoryOriginUrl) { context.Debug($"Checking if the repo on {repositoryPath} matches the expected repository origin URL. expected Url: {expectedRepositoryOriginUrl.AbsoluteUri}"); if (!Directory.Exists(Path.Combine(repositoryPath, ".git"))) { // There is no repo directory context.Debug($"Repository is not found since '.git' directory does not exist under. {repositoryPath}"); return(false); } Uri remoteUrl; remoteUrl = await _gitCommandManager.GitGetFetchUrl(context, repositoryPath); if (remoteUrl == null) { // origin fetch url not found. context.Debug("Repository remote origin fetch url is empty."); return(false); } context.Debug($"Repository remote origin fetch url is {remoteUrl}"); // compare the url passed in with the remote url found if (expectedRepositoryOriginUrl.Equals(remoteUrl)) { context.Debug("URLs match."); return(true); } else { context.Debug($"The remote.origin.url of the repository under root folder '{repositoryPath}' doesn't matches source repository url."); return(false); } }