diff --git a/Octokit.Reactive/Clients/IObservableReleasesClient.cs b/Octokit.Reactive/Clients/IObservableReleasesClient.cs
index 0df743d4..82fd46f5 100644
--- a/Octokit.Reactive/Clients/IObservableReleasesClient.cs
+++ b/Octokit.Reactive/Clients/IObservableReleasesClient.cs
@@ -43,7 +43,7 @@ namespace Octokit.Reactive
/// A description of the release to create
/// Thrown when a general API error occurs.
/// The created .
- IObservable Create(string owner, string name, ReleaseUpdate data);
+ IObservable Create(string owner, string name, NewRelease data);
///
/// Edits an existing for the specified repository.
diff --git a/Octokit.Reactive/Clients/ObservableReleasesClient.cs b/Octokit.Reactive/Clients/ObservableReleasesClient.cs
index de30db4f..d1809999 100644
--- a/Octokit.Reactive/Clients/ObservableReleasesClient.cs
+++ b/Octokit.Reactive/Clients/ObservableReleasesClient.cs
@@ -66,7 +66,7 @@ namespace Octokit.Reactive
/// A description of the release to create
/// Thrown when a general API error occurs.
/// The created .
- public IObservable Create(string owner, string name, ReleaseUpdate data)
+ public IObservable Create(string owner, string name, NewRelease data)
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(name, "name");
diff --git a/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs b/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs
index 4e087057..bc1e7c3a 100644
--- a/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs
+++ b/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs
@@ -43,7 +43,7 @@ public class ReleasesClientTests
public async Task ReturnsReleasesWithNullPublishDate()
{
// create a release without a publish date
- var releaseWithNoUpdate = new ReleaseUpdate("0.1") { Draft = true };
+ var releaseWithNoUpdate = new NewRelease("0.1") { Draft = true };
await _releaseClient.Create(_repositoryOwner, _repositoryName, releaseWithNoUpdate);
var releases = await _releaseClient.GetAll(_repositoryOwner, _repositoryName);
@@ -83,7 +83,7 @@ public class ReleasesClientTests
[IntegrationTest]
public async Task CanChangeBodyOfRelease()
{
- var releaseWithNoUpdate = new ReleaseUpdate("0.1") { Draft = true };
+ var releaseWithNoUpdate = new NewRelease("0.1") { Draft = true };
var release = await _releaseClient.Create(_repositoryOwner, _repositoryName, releaseWithNoUpdate);
var editRelease = release.ToUpdate();
@@ -101,7 +101,7 @@ public class ReleasesClientTests
[IntegrationTest]
public async Task CanChangeCommitIshOfRelease()
{
- var releaseWithNoUpdate = new ReleaseUpdate("0.1") { Draft = true };
+ var releaseWithNoUpdate = new NewRelease("0.1") { Draft = true };
var release = await _releaseClient.Create(_repositoryOwner, _repositoryName, releaseWithNoUpdate);
Assert.Equal("master", release.TargetCommitish);
@@ -150,7 +150,7 @@ public class ReleasesClientTests
[IntegrationTest]
public async Task CanUploadAndRetrieveAnAsset()
{
- var releaseWithNoUpdate = new ReleaseUpdate("0.1") { Draft = true };
+ var releaseWithNoUpdate = new NewRelease("0.1") { Draft = true };
var release = await _releaseClient.Create(_repositoryOwner, _repositoryName, releaseWithNoUpdate);
var stream = Helper.LoadFixture("hello-world.txt");
@@ -175,7 +175,7 @@ public class ReleasesClientTests
[IntegrationTest]
public async Task CanEditAnAssetLabel()
{
- var releaseWithNoUpdate = new ReleaseUpdate("0.1") { Draft = true };
+ var releaseWithNoUpdate = new NewRelease("0.1") { Draft = true };
var release = await _releaseClient.Create(_repositoryOwner, _repositoryName, releaseWithNoUpdate);
var stream = Helper.LoadFixture("hello-world.txt");
@@ -201,7 +201,7 @@ public class ReleasesClientTests
[IntegrationTest]
public async Task CanDownloadAnAsset()
{
- var releaseWithNoUpdate = new ReleaseUpdate("0.1") { Draft = true };
+ var releaseWithNoUpdate = new NewRelease("0.1") { Draft = true };
var release = await _releaseClient.Create(_repositoryOwner, _repositoryName, releaseWithNoUpdate);
var stream = Helper.LoadFixture("hello-world.txt");
diff --git a/Octokit.Tests/Clients/ReleasesClientTests.cs b/Octokit.Tests/Clients/ReleasesClientTests.cs
index da58eb4a..11e026df 100644
--- a/Octokit.Tests/Clients/ReleasesClientTests.cs
+++ b/Octokit.Tests/Clients/ReleasesClientTests.cs
@@ -67,7 +67,7 @@ namespace Octokit.Tests.Clients
{
var client = Substitute.For();
var releasesClient = new ReleasesClient(client);
- var data = new ReleaseUpdate("fake-tag");
+ var data = new NewRelease("fake-tag");
releasesClient.Create("fake", "repo", data);
@@ -80,9 +80,9 @@ namespace Octokit.Tests.Clients
public async Task EnsuresArgumentsNotNull()
{
var releasesClient = new ReleasesClient(Substitute.For());
- var data = new ReleaseUpdate("fake-tag");
+ var data = new NewRelease("fake-tag");
- Assert.Throws(() => new ReleaseUpdate(null));
+ Assert.Throws(() => new NewRelease(null));
await AssertEx.Throws(async () =>
await releasesClient.Create(null, "name", data));
await AssertEx.Throws(async () =>
@@ -99,7 +99,7 @@ namespace Octokit.Tests.Clients
{
var connection = Substitute.For();
var releasesClient = new ReleasesClient(connection);
- var data = new ReleaseUpdate("fake-tag");
+ var data = new ReleaseUpdate { TagName = "fake-tag" };
releasesClient.Edit("fake", "repo", 1, data);
@@ -110,11 +110,12 @@ namespace Octokit.Tests.Clients
public void EnsuresNonNullArguments()
{
var releasesClient = new ReleasesClient(Substitute.For());
+ var releaseUpdate = new ReleaseUpdate { TagName = "tag" };
- Assert.Throws(() => releasesClient.Edit(null, "name", 1, new ReleaseUpdate("tag")));
- Assert.Throws(() => releasesClient.Edit("", "name", 1, new ReleaseUpdate("tag")));
- Assert.Throws(() => releasesClient.Edit("owner", null, 1, new ReleaseUpdate("tag")));
- Assert.Throws(() => releasesClient.Edit("owner", "", 1, new ReleaseUpdate("tag")));
+ Assert.Throws(() => releasesClient.Edit(null, "name", 1, releaseUpdate));
+ Assert.Throws(() => releasesClient.Edit("", "name", 1, releaseUpdate));
+ Assert.Throws(() => releasesClient.Edit("owner", null, 1, releaseUpdate));
+ Assert.Throws(() => releasesClient.Edit("owner", "", 1, releaseUpdate));
Assert.Throws(() => releasesClient.Edit("owner", "name", 1, null));
}
}
diff --git a/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs b/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs
index a3fec67f..e43f6445 100644
--- a/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs
+++ b/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs
@@ -74,7 +74,7 @@ namespace Octokit.Tests.Reactive
{
var gitHubClient = Substitute.For();
var releasesClient = new ObservableReleasesClient(gitHubClient);
- var data = new ReleaseUpdate("fake-tag");
+ var data = new NewRelease("fake-tag");
releasesClient.Create("fake", "repo", data);
@@ -85,9 +85,9 @@ namespace Octokit.Tests.Reactive
public void EnsuresArgumentsNotNull()
{
var releasesClient = new ObservableReleasesClient(Substitute.For());
- var data = new ReleaseUpdate("fake-tag");
+ var data = new NewRelease("fake-tag");
- Assert.Throws(() => new ReleaseUpdate(null));
+ Assert.Throws(() => new NewRelease(null));
Assert.Throws(() => releasesClient.Create(null, "name", data));
Assert.Throws(() => releasesClient.Create("owner", null, data));
Assert.Throws(() => releasesClient.Create("owner", "name", null));
@@ -101,7 +101,7 @@ namespace Octokit.Tests.Reactive
{
var gitHubClient = Substitute.For();
var releasesClient = new ObservableReleasesClient(gitHubClient);
- var data = new ReleaseUpdate("fake-tag");
+ var data = new ReleaseUpdate { TagName = "fake-tag" };
releasesClient.Edit("fake", "repo", 1, data);
@@ -112,7 +112,7 @@ namespace Octokit.Tests.Reactive
public void EnsuresNonNullArguments()
{
var releasesClient = new ObservableReleasesClient(Substitute.For());
- var update = new ReleaseUpdate("tag");
+ var update = new ReleaseUpdate { TagName = "tag" };
Assert.Throws(() => releasesClient.Edit(null, "name", 1, update));
Assert.Throws(() => releasesClient.Edit("", "name", 1, update));
diff --git a/Octokit/Clients/IReleasesClient.cs b/Octokit/Clients/IReleasesClient.cs
index 61fd26c9..bfbbc96c 100644
--- a/Octokit/Clients/IReleasesClient.cs
+++ b/Octokit/Clients/IReleasesClient.cs
@@ -51,7 +51,7 @@ namespace Octokit
/// A description of the release to create
/// Thrown when a general API error occurs.
/// The created .
- Task Create(string owner, string name, ReleaseUpdate data);
+ Task Create(string owner, string name, NewRelease data);
///
/// Edits an existing for the specified repository.
diff --git a/Octokit/Clients/ReleasesClient.cs b/Octokit/Clients/ReleasesClient.cs
index 96f39581..56feb7a0 100644
--- a/Octokit/Clients/ReleasesClient.cs
+++ b/Octokit/Clients/ReleasesClient.cs
@@ -71,7 +71,7 @@ namespace Octokit
/// A description of the release to create
/// Thrown when a general API error occurs.
/// The created .
- public Task Create(string owner, string name, ReleaseUpdate data)
+ public Task Create(string owner, string name, NewRelease data)
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(name, "repository");
diff --git a/Octokit/Models/Request/GistUpdate.cs b/Octokit/Models/Request/GistUpdate.cs
index c16fc488..3462f26a 100644
--- a/Octokit/Models/Request/GistUpdate.cs
+++ b/Octokit/Models/Request/GistUpdate.cs
@@ -14,6 +14,14 @@ namespace Octokit
}
public string Description { get; set; }
+
+ ///
+ /// Gets a dictionary of gist files to update.
+ ///
+ ///
+ /// Note: All files from the previous version of the gist are carried over by default if not included in the hash.
+ /// Deletes can be performed by including the filename with a `null` hash.
+ ///
public IDictionary Files { get; private set; }
internal string DebuggerDisplay
diff --git a/Octokit/Models/Request/IssueUpdate.cs b/Octokit/Models/Request/IssueUpdate.cs
index 86e809a5..d0910a85 100644
--- a/Octokit/Models/Request/IssueUpdate.cs
+++ b/Octokit/Models/Request/IssueUpdate.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Globalization;
@@ -9,11 +10,6 @@ namespace Octokit
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class IssueUpdate
{
- public IssueUpdate()
- {
- Labels = new Collection();
- }
-
///
/// Title of the milestone (required)
///
@@ -49,12 +45,13 @@ namespace Octokit
///
/// Only users with push access can set labels for new issues. Labels are silently dropped otherwise.
///
- public Collection Labels { get; private set; }
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
+ public ICollection Labels { get; set; }
///
/// Whether the issue is open or closed.
///
- public ItemState State { get; set; }
+ public ItemState? State { get; set; }
internal string DebuggerDisplay
{
diff --git a/Octokit/Models/Request/MilestoneUpdate.cs b/Octokit/Models/Request/MilestoneUpdate.cs
index a148cb85..4da852cd 100644
--- a/Octokit/Models/Request/MilestoneUpdate.cs
+++ b/Octokit/Models/Request/MilestoneUpdate.cs
@@ -7,11 +7,6 @@ namespace Octokit
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class MilestoneUpdate
{
- ///
- /// The milestone number.
- ///
- public int Number { get; set; }
-
///
/// Title of the milestone (required)
///
@@ -20,7 +15,7 @@ namespace Octokit
///
/// Whether the milestone is open or closed. The default is .
///
- public ItemState State { get; set; }
+ public ItemState? State { get; set; }
///
/// Optional description for the milestone.
diff --git a/Octokit/Models/Request/NewRelease.cs b/Octokit/Models/Request/NewRelease.cs
new file mode 100644
index 00000000..18153498
--- /dev/null
+++ b/Octokit/Models/Request/NewRelease.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Diagnostics;
+using System.Globalization;
+
+namespace Octokit
+{
+ [DebuggerDisplay("{DebuggerDisplay,nq}")]
+ public class NewRelease
+ {
+ public NewRelease(string tagName)
+ {
+ Ensure.ArgumentNotNullOrEmptyString(tagName, "tagName");
+ TagName = tagName;
+ }
+
+ public string TagName { get; private set; }
+ public string TargetCommitish { get; set; }
+ public string Name { get; set; }
+ public string Body { get; set; }
+ public bool Draft { get; set; }
+ public bool Prerelease { get; set; }
+
+ internal string DebuggerDisplay
+ {
+ get
+ {
+ return String.Format(CultureInfo.InvariantCulture, "Name: {0} TagName: {1}", Name, TagName);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Octokit/Models/Request/PullRequestUpdate.cs b/Octokit/Models/Request/PullRequestUpdate.cs
index 4c441a1a..d5f6121c 100644
--- a/Octokit/Models/Request/PullRequestUpdate.cs
+++ b/Octokit/Models/Request/PullRequestUpdate.cs
@@ -7,11 +7,6 @@ namespace Octokit
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class PullRequestUpdate
{
- ///
- /// The pull request number.
- ///
- public int Number { get; set; }
-
///
/// Title of the pull request (required)
///
@@ -20,19 +15,7 @@ namespace Octokit
///
/// Whether the pull request is open or closed. The default is .
///
- public ItemState State { get; set; }
-
- ///
- /// The branch (or git ref) you want your changes pulled into. This should be an existing
- /// branch on the current repository. You cannot submit a pull request to one repo that
- /// requests a merge to a base of another repo.
- ///
- public string Base { get; set; }
-
- ///
- /// The branch (or git ref) where your changes are implemented.
- ///
- public string Head { get; set; }
+ public ItemState? State { get; set; }
///
/// The body for the pull request. Supports GFM.
@@ -43,7 +26,7 @@ namespace Octokit
{
get
{
- return String.Format(CultureInfo.InvariantCulture, "Title: {0}: Base:{1}", Title, Base);
+ return String.Format(CultureInfo.InvariantCulture, "Title: {0}", Title);
}
}
}
diff --git a/Octokit/Models/Request/ReleaseUpdate.cs b/Octokit/Models/Request/ReleaseUpdate.cs
index 264419dc..84f42869 100644
--- a/Octokit/Models/Request/ReleaseUpdate.cs
+++ b/Octokit/Models/Request/ReleaseUpdate.cs
@@ -7,18 +7,12 @@ namespace Octokit
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class ReleaseUpdate
{
- public ReleaseUpdate(string tagName)
- {
- Ensure.ArgumentNotNullOrEmptyString(tagName, "tagName");
- TagName = tagName;
- }
-
- public string TagName { get; private set; }
+ public string TagName { get; set; }
public string TargetCommitish { get; set; }
public string Name { get; set; }
public string Body { get; set; }
- public bool Draft { get; set; }
- public bool Prerelease { get; set; }
+ public bool? Draft { get; set; }
+ public bool? Prerelease { get; set; }
internal string DebuggerDisplay
{
diff --git a/Octokit/Models/Response/Release.cs b/Octokit/Models/Response/Release.cs
index d71e399c..f737554a 100644
--- a/Octokit/Models/Response/Release.cs
+++ b/Octokit/Models/Response/Release.cs
@@ -31,13 +31,14 @@ namespace Octokit
public ReleaseUpdate ToUpdate()
{
- return new ReleaseUpdate(TagName)
+ return new ReleaseUpdate
{
Body = Body,
Draft = Draft,
Name = Name,
Prerelease = Prerelease,
- TargetCommitish = TargetCommitish
+ TargetCommitish = TargetCommitish,
+ TagName = TagName
};
}
}
diff --git a/Octokit/Octokit-Mono.csproj b/Octokit/Octokit-Mono.csproj
index f15b228e..e333e774 100644
--- a/Octokit/Octokit-Mono.csproj
+++ b/Octokit/Octokit-Mono.csproj
@@ -339,6 +339,7 @@
+
\ No newline at end of file
diff --git a/Octokit/Octokit-MonoAndroid.csproj b/Octokit/Octokit-MonoAndroid.csproj
index 38a0f067..3fb5c1e4 100644
--- a/Octokit/Octokit-MonoAndroid.csproj
+++ b/Octokit/Octokit-MonoAndroid.csproj
@@ -349,6 +349,7 @@
+
\ No newline at end of file
diff --git a/Octokit/Octokit-Monotouch.csproj b/Octokit/Octokit-Monotouch.csproj
index db36ecaa..ac14b4b8 100644
--- a/Octokit/Octokit-Monotouch.csproj
+++ b/Octokit/Octokit-Monotouch.csproj
@@ -344,6 +344,7 @@
+
\ No newline at end of file
diff --git a/Octokit/Octokit-Portable.csproj b/Octokit/Octokit-Portable.csproj
index 920aea94..1bac375d 100644
--- a/Octokit/Octokit-Portable.csproj
+++ b/Octokit/Octokit-Portable.csproj
@@ -337,6 +337,7 @@
+
diff --git a/Octokit/Octokit-netcore45.csproj b/Octokit/Octokit-netcore45.csproj
index 18d1f502..c2671b0e 100644
--- a/Octokit/Octokit-netcore45.csproj
+++ b/Octokit/Octokit-netcore45.csproj
@@ -341,6 +341,7 @@
+
diff --git a/Octokit/Octokit.csproj b/Octokit/Octokit.csproj
index 72d298a9..c21d7900 100644
--- a/Octokit/Octokit.csproj
+++ b/Octokit/Octokit.csproj
@@ -76,6 +76,7 @@
+