示例#1
0
        public void CreateEnvironment(string project, string release, Guid environmentId, JObject jsonVariables)
        {
            ReleaseDefinition releaseDefinition = GetRelease(project, release);
            ReleaseDefinitionEnvironmentTemplate environmentTemplate = GetEnvironmentTemplate(project, environmentId);
            ReleaseDefinitionEnvironment         environment         = environmentTemplate.Environment;
            int maxRank = releaseDefinition.Environments.Max(x => x.Rank);

            environment.Rank = maxRank + 1;
            environment.Name = Guid.NewGuid().ToString();

            List <string> variables = environment.Variables.Keys.ToList();

            foreach (var variable in variables)
            {
                environment.Variables[variable] = new ConfigurationVariableValue()
                {
                    Value = ""
                };
            }
            if (jsonVariables != null)
            {
                foreach (var variable in jsonVariables)
                {
                    environment.Variables[variable.Key] = new ConfigurationVariableValue()
                    {
                        Value = variable.Value.ToString()
                    };
                }
            }


            releaseDefinition.Environments.Add(environment);
            Task <ReleaseDefinition> result = releaseClient.UpdateReleaseDefinitionAsync(releaseDefinition, project);
            ReleaseDefinition        update = result.Result;
        }
示例#2
0
        public ReleaseDefinitionEnvironmentTemplate GetEnvironmentTemplate(string project, Guid templateId)
        {
            ReleaseDefinitionEnvironmentTemplate result = null;

            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Add(
                    new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                                                                                           Convert.ToBase64String(
                                                                                               System.Text.ASCIIEncoding.ASCII.GetBytes(
                                                                                                   string.Format("{0}:{1}", "", PAT))));

                using (HttpResponseMessage response = client.GetAsync(
                           $"https://msfrbouter.vsrm.visualstudio.com/{project}/_apis/Release/definitions/environmenttemplates?templateid={templateId.ToString()}").Result)
                {
                    response.EnsureSuccessStatusCode();
                    string responseBody = response.Content.ReadAsStringAsync().Result;
                    result = JsonConvert.DeserializeObject <ReleaseDefinitionEnvironmentTemplate>(responseBody);
                }
            }
            return(result);
        }