public InstalledExtension InstallSampleExtension()
        {
            // Identifiers of the extension to install
            string publisherName = "ms-samples";
            string extensionName = "samples-contributions-guide";

            // Get the client
            VssConnection connection = Context.Connection;
            ExtensionManagementHttpClient extensionManagementClient = connection.GetClient <ExtensionManagementHttpClient>();

            InstalledExtension extension = null;

            // Try to install the extension
            try
            {
                Context.Log("Trying to install extension {0}.{1}...", publisherName, extensionName);

                extension = extensionManagementClient.InstallExtensionByNameAsync(publisherName, extensionName).Result;

                Context.Log("Extension installed successfully!");
            }
            catch (Exception ex)
            {
                // Unable to install the extension
                Context.Log("Unable to install the extension. Error: {0}", ex.Message);
            }

            if (extension != null)
            {
                LogExtension(extension);
            }

            return(extension);
        }
Example #2
0
        protected bool Connect(string PAT, string organisation)
        {
            var uriString = $"https://dev.azure.com/{organisation}";

            Console.Write($"Connecting to Azure DevOps REST API, {uriString} ...");
            try
            {
                _credentials     = new VssBasicCredential(string.Empty, PAT);
                _connection      = new VssConnection(new Uri(uriString), _credentials);
                _projectClient   = _connection.GetClient <ProjectHttpClient>();
                _buildClient     = _connection.GetClient <BuildHttpClient>();
                _releaseClient   = _connection.GetClient <ReleaseHttpClient>();
                _taskAgentClient = _connection.GetClient <TaskAgentHttpClient>();
                _extensionClient = _connection.GetClient <ExtensionManagementHttpClient>();
                _endpointClient  = _connection.GetClient <ServiceEndpointHttpClient>();
                _apiService      = new ApiService(PAT);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                Console.WriteLine($"Unable to authenticate with Azure DevOps REST API :(");
                return(false);
            }
            Console.WriteLine($" connected :)");
            return(true);
        }
        public IEnumerable <InstalledExtension> ListInstalledExtensions()
        {
            // Get the client
            VssConnection connection = Context.Connection;
            ExtensionManagementHttpClient extensionManagementClient = connection.GetClient <ExtensionManagementHttpClient>();

            // Get the list of installed extensions
            List <InstalledExtension> extensions = extensionManagementClient.GetInstalledExtensionsAsync().Result;

            foreach (InstalledExtension extension in extensions)
            {
                LogExtension(extension);
            }

            return(extensions);
        }
        public InstalledExtension GetInstalledSampleExtension()
        {
            // Identifiers of the extension to uninstall
            string publisherName = "ms-samples";
            string extensionName = "samples-contributions-guide";

            // Get the client
            VssConnection connection = Context.Connection;
            ExtensionManagementHttpClient extensionManagementClient = connection.GetClient <ExtensionManagementHttpClient>();

            // Try to get the extension
            try
            {
                InstalledExtension extension = extensionManagementClient.GetInstalledExtensionByNameAsync(publisherName, extensionName).Result;
                LogExtension(extension);
                return(extension);
            }
            catch (Exception ex)
            {
                Context.Log("Unable to get the extension: {0}", ex.Message);
                return(null);
            }
        }
        public bool UninstallSampleExtension()
        {
            // Identifiers of the extension to uninstall
            string publisherName = "ms-samples";
            string extensionName = "samples-contributions-guide";

            // Get the client
            VssConnection connection = Context.Connection;
            ExtensionManagementHttpClient extensionManagementClient = connection.GetClient <ExtensionManagementHttpClient>();

            // Try to uninstall the extension
            try
            {
                extensionManagementClient.UninstallExtensionByNameAsync(publisherName, extensionName, "Just testing").SyncResult();
                Context.Log("Successfully uninstalled the extension.");
                return(true);
            }
            catch (Exception ex)
            {
                Context.Log("Unable to uninstall the extension: {0}", ex.Message);
                return(false);
            }
        }