From 50f19975aae8ddcc5424d0d2f44b38ed8223dce0 Mon Sep 17 00:00:00 2001 From: Woland2k Date: Fri, 19 Dec 2014 15:14:52 -0800 Subject: [PATCH] - added support for content APIs --- Octokit/Clients/IRepositoryContentsClient.cs | 15 +++++++++ Octokit/Http/Request.cs | 1 + Octokit/Models/Request/Committer.cs | 15 +++++++++ Octokit/Models/Request/CreateFileRequest.cs | 33 ++++++++++++++++++++ Octokit/Models/Response/DirectoryContent.cs | 6 ++++ Octokit/Octokit.csproj | 4 ++- 6 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 Octokit/Models/Request/Committer.cs create mode 100644 Octokit/Models/Request/CreateFileRequest.cs diff --git a/Octokit/Clients/IRepositoryContentsClient.cs b/Octokit/Clients/IRepositoryContentsClient.cs index d2e55616..1ba69d77 100644 --- a/Octokit/Clients/IRepositoryContentsClient.cs +++ b/Octokit/Clients/IRepositoryContentsClient.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Threading.Tasks; +using Octokit.Models.Request; namespace Octokit { @@ -32,5 +33,19 @@ namespace Octokit /// Thrown when a general API error occurs. /// Task GetReadmeHtml(string owner, string name); + + /// + /// + /// + /// + /// + /// + /// + /// + Task CreateFile(string owner, string name, string path, CreateFileRequest request); + + Task UpdateFile(string owner, string name, string path, UpdateFileRequest request); + + Task DeleteFile(string owner, string name, string path, DeleteFileRequest request); } } \ No newline at end of file diff --git a/Octokit/Http/Request.cs b/Octokit/Http/Request.cs index 923b6f96..cd6dad4d 100644 --- a/Octokit/Http/Request.cs +++ b/Octokit/Http/Request.cs @@ -4,6 +4,7 @@ using System.Net.Http; namespace Octokit.Internal { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1724:TypeNamesShouldNotMatchNamespaces")] public class Request : IRequest { public Request() diff --git a/Octokit/Models/Request/Committer.cs b/Octokit/Models/Request/Committer.cs new file mode 100644 index 00000000..91b51c4f --- /dev/null +++ b/Octokit/Models/Request/Committer.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Octokit.Models.Request +{ + public class Committer + { + public string Name { get; set; } + + public string Email { get; set; } + } +} diff --git a/Octokit/Models/Request/CreateFileRequest.cs b/Octokit/Models/Request/CreateFileRequest.cs new file mode 100644 index 00000000..42fd8f06 --- /dev/null +++ b/Octokit/Models/Request/CreateFileRequest.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Octokit.Models.Request +{ + public class DeleteFileRequest + { + public string Message { get; set; } + public string Branch { get; set; } + public Committer Committer { get; set; } + public string Sha { get; set; } + } + + public class CreateFileRequest + { + public string Message { get; set; } + public string Content { get; set; } + public string Branch { get; set; } + public Committer Committer { get; set; } + } + + public class UpdateFileRequest + { + public string Message { get; set; } + public string Content { get; set; } + public string Branch { get; set; } + public Committer Committer { get; set; } + public string Sha { get; set; } + } +} diff --git a/Octokit/Models/Response/DirectoryContent.cs b/Octokit/Models/Response/DirectoryContent.cs index d4d3234d..bc661be7 100644 --- a/Octokit/Models/Response/DirectoryContent.cs +++ b/Octokit/Models/Response/DirectoryContent.cs @@ -48,4 +48,10 @@ namespace Octokit Symlink, Submodule } + + public class CreatedContent + { + public DirectoryContent Content { get; set; } + public Commit Commit { get; set; } + } } \ No newline at end of file diff --git a/Octokit/Octokit.csproj b/Octokit/Octokit.csproj index 2fd26a4c..d99531fa 100644 --- a/Octokit/Octokit.csproj +++ b/Octokit/Octokit.csproj @@ -77,6 +77,8 @@ + + @@ -390,4 +392,4 @@ --> - + \ No newline at end of file