Ejemplo n.º 1
0
        protected override int OnExecute(CommandLineApplication app)
        {
            base.OnExecute(app);

            while (this.ReleaseDefinitionId <= 0)
            {
                int.TryParse(Prompt.GetString("> ReleaseDefinitionId:", null, ConsoleColor.DarkGray), out int releaseDefinitionId);
                this.ReleaseDefinitionId = releaseDefinitionId;
            }

            CreateReleaseRequest request = new CreateReleaseRequest
            {
                DefinitionId       = this.ReleaseDefinitionId,
                Description        = this.Description,
                IsDraft            = this.IsDraft,
                ManualEnvironments = this.ManualEnvironments,
                Reason             = this.Reason,
            };

            if (!string.IsNullOrEmpty(this.Artifacts))
            {
                try
                {
                    JsonSerializerSettings settings = new JsonSerializerSettings
                    {
                        MissingMemberHandling = MissingMemberHandling.Error,
                    };

                    List <ArtifactDTO> artifactsMetadata = JsonConvert.DeserializeObject <List <ArtifactDTO> >(this.Artifacts, settings);

                    List <ReleaseArtifactMetadata> releaseArtifactMetadataList = new List <ReleaseArtifactMetadata>();
                    foreach (var artifact in artifactsMetadata)
                    {
                        releaseArtifactMetadataList.Add(
                            new ReleaseArtifactMetadata
                        {
                            Alias             = artifact.Alias,
                            InstanceReference = new BuildVersion
                            {
                                Id   = artifact.Id,
                                Name = artifact.Name,
                            },
                        });
                    }

                    request.Artifacts = releaseArtifactMetadataList;
                }
                catch (Exception ex)
                {
                    Console.Error.WriteLine("There was an error parsing the parameter 'artifacts'. Error: {0}", ex.Message);
                    return(ExitCodes.UnknownError);
                }
            }

            var result = this.DevOpsClient.Release.CreateAsync(this.ProjectName, request).GetAwaiter().GetResult();

            Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented));

            return(ExitCodes.Ok);
        }
Ejemplo n.º 2
0
        public async Task CanBeConstructed()
        {
            //Arrange
            CreateReleaseRequest sut;

            //Act
            sut = new CreateReleaseRequest("my-org", "my-project", new ReleaseDto());

            //Assert
            Assert.NotNull(sut);
            Assert.Equal("6.1-preview.8", sut.ApiVersion);
            Assert.Equal(HttpMethod.Post, sut.Method);

            Assert.Equal("https://vsrm.dev.azure.com/my-org/my-project/_apis/release/releases?api-version=6.1-preview.8", sut.RequestUri.AbsoluteUri);
            Assert.True(await new StringContent(JsonSerializer.Serialize(new ReleaseDto())).ReadAsStringAsync() == await sut.Content.ReadAsStringAsync());
        }
Ejemplo n.º 3
0
        public override async Task <CreateReleaseResponse> CreateRelease(
            CreateReleaseRequest request,
            ServerCallContext context)
        {
            context.CheckAuthenticated(_authSettings);

            var result = await _executor.ExecuteAsync(new CreateReleaseQuery
            {
                ReleaseDefinition = request.ReleaseDefinition.ToModel()
            }).ConfigureAwait(false);


            var response = new CreateReleaseResponse
            {
            };

            return(response);
        }
        public async Task <Release> CreateReleaseAsync(CreateReleaseRequest request)
        {
            var queryParamValues = QueryParamValues.From(
                new NamedValue(nameof(request.ApplicationId).Decapitalize(), request.ApplicationId),
                new NamedValue(nameof(request.ApplicationName).Decapitalize(), request.ApplicationName),
                new NamedValue(nameof(request.ReleaseName).Decapitalize(), request.ReleaseName),
                new NamedValue(nameof(request.ReleaseNumber).Decapitalize(), request.ReleaseNumber),
                new NamedValue(nameof(request.PipelineId).Decapitalize(), request.PipelineId),
                new NamedValue(nameof(request.PipelineName).Decapitalize(), request.PipelineName)
                );

            foreach (var variable in request.Variables)
            {
                queryParamValues.Add(variable.Name, variable.Value);
            }

            return(await GetReleasesApiClient("create", queryParamValues)
                   .PutAsync(new StringContent(""))
                   .ReceiveJson <Release>());
        }
Ejemplo n.º 5
0
        public SuccessResponse PostRelease(CreateReleaseRequest release)
        {
            var result = _createValidator.Validate(release, ruleSet: "Required");

            if (!result.IsValid)
            {
                foreach (var failure in result.Errors)
                {
                    return(new SuccessResponse
                    {
                        Message = failure.PropertyName + " failed validation." + failure.ErrorMessage
                    });
                }
            }

            var newRelease = _mapper.Map <Release>(release);
            var releaseId  = _releaseLogic.CreateRelease(newRelease);

            return(new SuccessResponse
            {
                Id = releaseId,
                Message = "Release Created Successfully"
            });
        }
 public async Task <Release> CreateAsync(CreateReleaseRequest request) =>
 await _httpFacade.Post <Release>($"projects/{request.ProjectId}/releases/", request);