public static void Main(string[] args) { const string url = @"https://account.visualstudio.com"; Uri uri = new Uri(url); VssConnection connection = new VssConnection(uri, new VssClientCredentials()); SearchHttpClient searchClient = connection.GetClient <SearchHttpClient>(); IDictionary <string, IEnumerable <string> > filters = new Dictionary <string, IEnumerable <string> > { ["Project"] = new[] { "<repo project>" }, ["Repository"] = new[] { "<repo name>" }, ["Path"] = new[] { "" }, ["Branch"] = new[] { "master" }, // ["CodeElement"] = new[] { "def" } }; CodeSearchRequest searchRequest = new CodeSearchRequest { SearchText = "def:getconfig* OR basetype:getconfig*", Skip = 0, Top = 10, Filters = filters, IncludeFacets = true }; CodeSearchResponse searchResults = searchClient.FetchAdvancedCodeSearchResultsAsync(searchRequest).GetAwaiter().GetResult(); Console.WriteLine($"Total matches = {searchResults.Count}."); Console.WriteLine("Results fetched:"); int rank = 1; foreach (CodeResult result in searchResults.Results) { var f = Path.GetFileNameWithoutExtension(result.Filename); Console.WriteLine($"Rank = {rank++}, Project = {result.Project.Name}, Repository = {result.Repository.Name}, Branch = {result.Versions.FirstOrDefault()?.BranchName}, " + $"FilePath = {result.Path}, HitsInFile = {result.Matches.Count}"); } }
public async Task InitializeAsync() { try { _logger.LogInformation($"Initializing Azure DevOps Code Search Client for {_projectUri}"); var creds = new VssClientCredentials(); var connection = new VssConnection(_projectUri, creds); _searchClient = await connection.GetClientAsync <SearchHttpClient>(); _logger.LogInformation($"Successfully initialized Azure DevOps Code Search Client for {_projectUri}"); // Kick off a warm up query await SearchCodeAsync(new SearchRequest { Filter = "_FastCodeNav_VSCode_Extension_WarmUp_", MaxResults = 1 }); } catch (Exception e) { _logger.LogError(e, $"Failed to initialize Azure DevOps Code Search Client for {_projectUri}"); } }