示例#1
0
        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}");
            }
        }