Пример #1
0
 public static System.Threading.Tasks.Task <FileCreated> CreateFileAsync(this Meziantou.GitLab.IGitLabRepositoryFilesClient client, ProjectIdOrPathRef id, string filePath, string branch, Meziantou.GitLab.TextOrBinaryData content, string commitMessage, string?startBranch = default(string?), string?authorEmail = default(string?), string?authorName = default(string?), Meziantou.GitLab.RequestOptions?requestOptions = default(Meziantou.GitLab.RequestOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))
 {
     Meziantou.GitLab.CreateFileRepositoryFileRequest request = new Meziantou.GitLab.CreateFileRepositoryFileRequest(id, filePath, branch, content, commitMessage);
     request.StartBranch = startBranch;
     request.AuthorEmail = authorEmail;
     request.AuthorName  = authorName;
     return(client.CreateFileAsync(request, requestOptions, cancellationToken));
 }
Пример #2
0
        private static string RepositoryFiles_CreateFileAsync_BuildUrl(Meziantou.GitLab.CreateFileRepositoryFileRequest request)
        {
            string url;

            using (Meziantou.GitLab.Internals.UrlBuilder urlBuilder = new Meziantou.GitLab.Internals.UrlBuilder())
            {
                urlBuilder.Append("projects/");
                if (request.Id.HasValue)
                {
                    urlBuilder.AppendParameter(request.Id.GetValueOrDefault().ValueAsString);
                }

                urlBuilder.Append("/repository/files/");
                if ((!object.ReferenceEquals(request.FilePath, null)))
                {
                    urlBuilder.AppendParameter(request.FilePath);
                }

                url = urlBuilder.ToString();
            }

            return(url);
        }
Пример #3
0
        private async System.Threading.Tasks.Task <FileCreated> RepositoryFiles_CreateFileAsync(Meziantou.GitLab.CreateFileRepositoryFileRequest request, Meziantou.GitLab.RequestOptions?requestOptions = default(Meziantou.GitLab.RequestOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))
        {
            string url = Meziantou.GitLab.GitLabClient.RepositoryFiles_CreateFileAsync_BuildUrl(request);

            using (System.Net.Http.HttpRequestMessage requestMessage = new System.Net.Http.HttpRequestMessage())
            {
                requestMessage.Method     = System.Net.Http.HttpMethod.Post;
                requestMessage.RequestUri = new System.Uri(url, System.UriKind.RelativeOrAbsolute);
                requestMessage.Content    = new Meziantou.GitLab.Internals.JsonContent(request, Meziantou.GitLab.Serialization.JsonSerialization.Options);
                HttpResponse?response = null;
                try
                {
                    response = await this.SendAsync(requestMessage, requestOptions, cancellationToken).ConfigureAwait(false);

                    await response.EnsureStatusCodeAsync(cancellationToken).ConfigureAwait(false);

                    FileCreated?result = await response.ToObjectAsync <FileCreated>(cancellationToken).ConfigureAwait(false);

                    if ((result == null))
                    {
                        throw new Meziantou.GitLab.GitLabException(response.RequestMethod, response.RequestUri, response.StatusCode, "The response cannot be converted to 'FileCreated' because the body is null or empty");
                    }

                    return(result);
                }
                finally
                {
                    if ((response != null))
                    {
                        response.Dispose();
                    }
                }
            }
        }
Пример #4
0
 System.Threading.Tasks.Task <FileCreated> Meziantou.GitLab.IGitLabRepositoryFilesClient.CreateFileAsync(Meziantou.GitLab.CreateFileRepositoryFileRequest request, Meziantou.GitLab.RequestOptions?requestOptions, System.Threading.CancellationToken cancellationToken)
 {
     return(this.RepositoryFiles_CreateFileAsync(request, requestOptions, cancellationToken));
 }