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