Example #1
0
        public async Task ProjectVariableCanBeUpdated()
        {
            var request = new CreateVariableRequest
            {
                VariableType     = "env_var",
                Key              = "SOME_VAR_KEY_TO_UPDATE",
                Value            = "VALUE_VAR",
                EnvironmentScope = "*",
                Masked           = true,
                Protected        = true
            };

            var variable = await _sut.CreateVariableAsync(GitLabApiHelper.TestProjectId, request);

            VariableIdsToClean.Add(request.Key);

            var updateRequest = new UpdateProjectVariableRequest
            {
                VariableType     = "file",
                Key              = request.Key,
                Value            = "UpdatedValue",
                EnvironmentScope = "*",
                Masked           = request.Masked,
                Protected        = request.Protected,
            };

            var variableUpdated = await _sut.UpdateVariableAsync(GitLabApiHelper.TestProjectId, updateRequest);

            variableUpdated.Should().Match <Variable>(v => v.VariableType == updateRequest.VariableType &&
                                                      v.Key == updateRequest.Key &&
                                                      v.Value == updateRequest.Value &&
                                                      v.EnvironmentScope == updateRequest.EnvironmentScope &&
                                                      v.Masked == updateRequest.Masked &&
                                                      v.Protected == updateRequest.Protected);
        }
 /// <summary>
 /// Updates an existing project variable.
 /// </summary>
 /// <param name="projectId">The ID, path or <see cref="Project"/> of the project.</param>
 /// <param name="request">Update variable request.</param>
 /// <returns>Newly modified variable.</returns>
 public async Task <Variable> UpdateVariableAsync(ProjectId projectId, UpdateProjectVariableRequest request)
 {
     Guard.NotNull(request, nameof(request));
     return(await _httpFacade.Put <Variable>($"projects/{projectId}/variables/{request.Key}", request));
 }