Skip to main content
Glama

Azure MCP Server

Official
MIT License
1,161
  • Linux
  • Apple
PipelineGenerationUtil.cs3.5 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using AzureMcp.Deploy.Models.Templates; using AzureMcp.Deploy.Options.Pipeline; using AzureMcp.Deploy.Services.Templates; namespace AzureMcp.Deploy.Services.Util; /// <summary> /// Utility class for generating pipeline guidelines using embedded template resources. /// </summary> public static class PipelineGenerationUtil { /// <summary> /// Generates pipeline guidelines based on the provided options. /// </summary> /// <param name="options">The guidance options containing pipeline configuration.</param> /// <returns>A formatted pipeline guidelines string.</returns> public static string GeneratePipelineGuidelines(GuidanceGetOptions options) { if (options.UseAZDPipelineConfig) { return TemplateService.LoadTemplate("Pipeline/azd-pipeline"); } else { var parameters = CreatePipelineParameters(options); return TemplateService.ProcessTemplate("Pipeline/azcli-pipeline", parameters.ToDictionary()); } } /// <summary> /// Creates pipeline template parameters from the provided options. /// </summary> private static PipelineTemplateParameters CreatePipelineParameters(GuidanceGetOptions options) { const string defaultEnvironment = "dev"; var environmentNamePrompt = !string.IsNullOrEmpty(options.GithubEnvironmentName) ? $"Use {options.GithubEnvironmentName} for environment name of the deployment job." : $"Use '{defaultEnvironment}' for the $environment for the deployment job."; var subscriptionIdPrompt = !string.IsNullOrEmpty(options.Subscription) && CheckGUIDFormat(options.Subscription) ? $"User is deploying to subscription {options.Subscription}" : "Use \"az account show --query id -o tsv\" as default subscription ID."; var organizationName = !string.IsNullOrEmpty(options.OrganizationName) ? options.OrganizationName : "{$organization-of-repo}"; var repositoryName = !string.IsNullOrEmpty(options.RepositoryName) ? options.RepositoryName : "{$repository-name}"; var environmentName = !string.IsNullOrEmpty(options.GithubEnvironmentName) ? options.GithubEnvironmentName : defaultEnvironment; var subjectConfig = $"repo:{organizationName}/{repositoryName}:environment:{environmentName}"; var environmentArg = !string.IsNullOrEmpty(options.GithubEnvironmentName) ? $"--env {options.GithubEnvironmentName}" : "--env dev"; var environmentCreateCommand = $"gh api --method PUT -H \"Accept: application/vnd.github+json\" repos/{organizationName}/{repositoryName}/environments/{environmentName}"; var jsonParameters = $"{{\"name\":\"github-federated\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"{subjectConfig}\",\"audiences\":[\"api://AzureADTokenExchange\"]}}"; return new PipelineTemplateParameters { EnvironmentNamePrompt = environmentNamePrompt, SubscriptionIdPrompt = subscriptionIdPrompt, EnvironmentCreateCommand = environmentCreateCommand, JsonParameters = jsonParameters, EnvironmentArg = environmentArg }; } /// <summary> /// Checks if the provided string is a valid GUID format. /// </summary> private static bool CheckGUIDFormat(string input) { return Guid.TryParse(input, out _); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Azure/azure-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server