From c3a67ae77756794c6ae03eee6930ab157f8b3a39 Mon Sep 17 00:00:00 2001 From: Micah Date: Sun, 18 Jan 2015 14:11:43 -0800 Subject: [PATCH] Creates constructors for all Models.Response. Resolves https://github.com/octokit/octokit.net/issues/677. Removes obscolete properties (gravatar). Makes Models.Response properties all be protected (most were already). --- .../Clients/ReleasesClientTests.cs | 19 ++------- Octokit.Tests/Clients/OauthClientTests.cs | 2 +- Octokit.Tests/Clients/ReleasesClientTests.cs | 6 +-- .../Clients/RepositoryContentsClientTests.cs | 14 +++---- Octokit.Tests/Clients/WatchedClientTests.cs | 2 +- .../ObservablePullRequestsClientTests.cs | 2 +- .../Reactive/ObservableReleasesClientTests.cs | 4 +- Octokit.ruleset | 1 + Octokit/Models/Response/Account.cs | 29 ++++++++++++++ Octokit/Models/Response/Activity.cs | 13 ++++++ .../Models/Response/AdditionsAndDeletions.cs | 9 +++++ Octokit/Models/Response/ApiError.cs | 11 +++-- Octokit/Models/Response/ApiErrorDetail.cs | 10 +++++ Octokit/Models/Response/Application.cs | 8 ++++ Octokit/Models/Response/Author.cs | 31 +++++++++----- Octokit/Models/Response/Authorization.cs | 17 ++++++-- Octokit/Models/Response/Blob.cs | 10 +++++ Octokit/Models/Response/BlobReference.cs | 7 ++++ Octokit/Models/Response/Branch.cs | 8 ++++ Octokit/Models/Response/CodeFrequency.cs | 7 ++++ .../Models/Response/CombinedCommitStatus.cs | 11 +++++ Octokit/Models/Response/Commit.cs | 13 ++++++ Octokit/Models/Response/CommitActivity.cs | 2 + Octokit/Models/Response/CommitComment.cs | 17 ++++++++ Octokit/Models/Response/CommitContent.cs | 15 +++++++ Octokit/Models/Response/CommitStatus.cs | 15 +++++++ Octokit/Models/Response/CompareResult.cs | 18 +++++++++ Octokit/Models/Response/Contributor.cs | 9 +++++ Octokit/Models/Response/DeployKey.cs | 10 +++++ Octokit/Models/Response/Deployment.cs | 15 +++++++ Octokit/Models/Response/DeploymentStatus.cs | 15 +++++++ Octokit/Models/Response/EmailAddress.cs | 9 +++++ Octokit/Models/Response/Emoji.cs | 2 + Octokit/Models/Response/EventInfo.cs | 14 +++++++ Octokit/Models/Response/Feed.cs | 13 ++++++ Octokit/Models/Response/FeedLink.cs | 20 ++++++++++ Octokit/Models/Response/Gist.cs | 21 ++++++++++ Octokit/Models/Response/GistChangeStatus.cs | 9 +++++ Octokit/Models/Response/GistComment.cs | 12 ++++++ Octokit/Models/Response/GistFile.cs | 13 ++++++ Octokit/Models/Response/GistFork.cs | 9 +++++ Octokit/Models/Response/GistHistory.cs | 11 +++++ Octokit/Models/Response/GitHubCommit.cs | 15 +++++++ Octokit/Models/Response/GitHubCommitFile.cs | 17 ++++++++ Octokit/Models/Response/GitHubCommitStats.cs | 9 +++++ Octokit/Models/Response/GitReference.cs | 12 ++++++ Octokit/Models/Response/GitTag.cs | 11 +++++ Octokit/Models/Response/Issue.cs | 21 ++++++++++ Octokit/Models/Response/IssueComment.cs | 13 ++++++ Octokit/Models/Response/IssueEvent.cs | 15 +++++++ Octokit/Models/Response/Label.cs | 9 +++++ Octokit/Models/Response/Milestone.cs | 18 +++++++-- Octokit/Models/Response/Notification.cs | 14 +++++++ Octokit/Models/Response/NotificationInfo.cs | 10 +++++ Octokit/Models/Response/OauthToken.cs | 9 +++++ Octokit/Models/Response/Organization.cs | 8 ++++ Octokit/Models/Response/Participation.cs | 8 ++++ Octokit/Models/Response/Plan.cs | 11 +++++ Octokit/Models/Response/PublicKey.cs | 10 +++++ Octokit/Models/Response/PullRequest.cs | 34 ++++++++++++++-- Octokit/Models/Response/PullRequestCommit.cs | 14 +++++++ Octokit/Models/Response/PullRequestMerge.cs | 9 +++++ .../Response/PullRequestReviewComment.cs | 22 ++++++++-- Octokit/Models/Response/PunchCardPoint.cs | 9 +++++ Octokit/Models/Response/Readme.cs | 11 +++++ Octokit/Models/Response/ReadmeResponse.cs | 21 +++++++--- Octokit/Models/Response/Reference.cs | 9 +++++ Octokit/Models/Response/Release.cs | 17 +++++++- Octokit/Models/Response/ReleaseAsset.cs | 17 ++++++++ Octokit/Models/Response/ReleaseAssetUpload.cs | 18 +++++++-- Octokit/Models/Response/Repository.cs | 40 +++++++++++++++++-- Octokit/Models/Response/RepositoryContent.cs | 11 +++++ .../Response/RepositoryContentChangeSet.cs | 8 ++++ .../Models/Response/RepositoryContributor.cs | 8 ++++ .../Models/Response/RepositoryPermissions.cs | 9 +++++ Octokit/Models/Response/RepositoryTag.cs | 12 ++++++ Octokit/Models/Response/SearchCode.cs | 13 ++++++ Octokit/Models/Response/SearchCodeResult.cs | 9 ++++- Octokit/Models/Response/SearchIssuesResult.cs | 8 +++- .../Models/Response/SearchRepositoryResult.cs | 9 ++++- Octokit/Models/Response/SearchResult.cs | 9 +++++ Octokit/Models/Response/SearchUsersResult.cs | 9 ++++- Octokit/Models/Response/SignatureResponse.cs | 4 +- Octokit/Models/Response/SshKey.cs | 8 ++++ Octokit/Models/Response/Subscription.cs | 12 ++++++ Octokit/Models/Response/TagObject.cs | 8 ++++ Octokit/Models/Response/Team.cs | 13 ++++++ Octokit/Models/Response/ThreadSubscription.cs | 12 ++++++ Octokit/Models/Response/TreeItem.cs | 12 ++++++ Octokit/Models/Response/TreeResponse.cs | 10 +++++ Octokit/Models/Response/User.cs | 15 ++++--- .../Models/Response/WeeklyCommitActivity.cs | 9 +++++ Octokit/Models/Response/WeeklyHash.cs | 14 +++++++ 93 files changed, 1052 insertions(+), 84 deletions(-) diff --git a/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs b/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs index 0bab3221..4c5e9214 100644 --- a/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs +++ b/Octokit.Tests.Integration/Clients/ReleasesClientTests.cs @@ -146,10 +146,7 @@ public class ReleasesClientTests var stream = Helper.LoadFixture("hello-world.txt"); - var newAsset = new ReleaseAssetUpload - { - ContentType = "text/plain", FileName = "hello-world.txt", RawData = stream - }; + var newAsset = new ReleaseAssetUpload("hello-world.txt", "text/plain", stream, null); var result = await _releaseClient.UploadAsset(release, newAsset); @@ -172,12 +169,7 @@ public class ReleasesClientTests var stream = Helper.LoadFixture("hello-world.txt"); - var newAsset = new ReleaseAssetUpload - { - ContentType = "text/plain", - FileName = "hello-world.txt", - RawData = stream - }; + var newAsset = new ReleaseAssetUpload("hello-world.txt", "text/plain", stream, null); var result = await _releaseClient.UploadAsset(release, newAsset); var asset = await _releaseClient.GetAsset(_repositoryOwner, _repositoryName, result.Id); @@ -198,12 +190,7 @@ public class ReleasesClientTests var stream = Helper.LoadFixture("hello-world.txt"); - var newAsset = new ReleaseAssetUpload - { - ContentType = "text/plain", - FileName = "hello-world.txt", - RawData = stream - }; + var newAsset = new ReleaseAssetUpload("hello-world.txt", "text/plain", stream, null); var result = await _releaseClient.UploadAsset(release, newAsset); diff --git a/Octokit.Tests/Clients/OauthClientTests.cs b/Octokit.Tests/Clients/OauthClientTests.cs index f473072b..96a7f920 100644 --- a/Octokit.Tests/Clients/OauthClientTests.cs +++ b/Octokit.Tests/Clients/OauthClientTests.cs @@ -54,7 +54,7 @@ public class OauthClientTests [Fact] public async Task PostsWithCorrectBodyAndContentType() { - var responseToken = new OauthToken(); + var responseToken = new OauthToken(null, null, null); var response = Substitute.For>(); response.BodyAsObject.Returns(responseToken); var connection = Substitute.For(); diff --git a/Octokit.Tests/Clients/ReleasesClientTests.cs b/Octokit.Tests/Clients/ReleasesClientTests.cs index 23478b5f..de14fe61 100644 --- a/Octokit.Tests/Clients/ReleasesClientTests.cs +++ b/Octokit.Tests/Clients/ReleasesClientTests.cs @@ -181,7 +181,7 @@ namespace Octokit.Tests.Clients var releasesClient = new ReleasesClient(client); var release = new Release("https://uploads.test.dev/does/not/matter/releases/1/assets{?name}"); var rawData = Substitute.For(); - var upload = new ReleaseAssetUpload { FileName = "example.zip", ContentType = "application/zip", RawData = rawData }; + var upload = new ReleaseAssetUpload("example.zip", "application/zip", rawData, null); releasesClient.UploadAsset(release, upload); @@ -198,7 +198,7 @@ namespace Octokit.Tests.Clients var releasesClient = new ReleasesClient(Substitute.For()); var release = new Release("https://uploads.github.com/anything"); - var uploadData = new ReleaseAssetUpload { FileName = "good", ContentType = "good/good", RawData = Stream.Null }; + var uploadData = new ReleaseAssetUpload("good", "good/good", Stream.Null, null); await AssertEx.Throws(async () => await releasesClient.UploadAsset(null, uploadData)); await AssertEx.Throws(async () => await releasesClient.UploadAsset(release, null)); } @@ -213,7 +213,7 @@ namespace Octokit.Tests.Clients var fixture = new ReleasesClient(apiConnection); var release = new Release("https://uploads.github.com/anything"); - var uploadData = new ReleaseAssetUpload { FileName = "good", ContentType = "good/good", RawData = Stream.Null, Timeout = newTimeout }; + var uploadData = new ReleaseAssetUpload("good", "good/good", Stream.Null, newTimeout); await fixture.UploadAsset(release, uploadData); diff --git a/Octokit.Tests/Clients/RepositoryContentsClientTests.cs b/Octokit.Tests/Clients/RepositoryContentsClientTests.cs index 8f0ce85e..48df1bee 100644 --- a/Octokit.Tests/Clients/RepositoryContentsClientTests.cs +++ b/Octokit.Tests/Clients/RepositoryContentsClientTests.cs @@ -14,14 +14,12 @@ namespace Octokit.Tests.Clients public async Task ReturnsReadme() { string encodedContent = Convert.ToBase64String(Encoding.UTF8.GetBytes("Hello world")); - var readmeInfo = new ReadmeResponse - { - Content = encodedContent, - Encoding = "base64", - Name = "README.md", - Url = "https://github.example.com/readme.md", - HtmlUrl = "https://github.example.com/readme" - }; + var readmeInfo = new ReadmeResponse( + encodedContent, + "README.md", + "https://github.example.com/readme", + "https://github.example.com/readme.md", + "base64"); var connection = Substitute.For(); connection.Get(Args.Uri, null).Returns(Task.FromResult(readmeInfo)); connection.GetHtml(Args.Uri, null).Returns(Task.FromResult("README")); diff --git a/Octokit.Tests/Clients/WatchedClientTests.cs b/Octokit.Tests/Clients/WatchedClientTests.cs index 32329f47..8911a062 100644 --- a/Octokit.Tests/Clients/WatchedClientTests.cs +++ b/Octokit.Tests/Clients/WatchedClientTests.cs @@ -63,7 +63,7 @@ namespace Octokit.Tests.Clients var endpoint = new Uri("repos/fight/club/subscription", UriKind.Relative); var connection = Substitute.For(); - connection.Get(endpoint).Returns(Task.FromResult(new Subscription())); + connection.Get(endpoint).Returns(Task.FromResult(new Subscription(false, false, null, default(DateTimeOffset), null, null))); var client = new WatchedClient(connection); diff --git a/Octokit.Tests/Reactive/ObservablePullRequestsClientTests.cs b/Octokit.Tests/Reactive/ObservablePullRequestsClientTests.cs index b4c198ca..cf2e9b38 100644 --- a/Octokit.Tests/Reactive/ObservablePullRequestsClientTests.cs +++ b/Octokit.Tests/Reactive/ObservablePullRequestsClientTests.cs @@ -277,7 +277,7 @@ namespace Octokit.Tests.Reactive [Fact] public async Task FetchesAllCommitsForPullRequest() { - var commit = new PullRequestCommit(); + var commit = new PullRequestCommit(null, null, null, null, null, null, null, null); var expectedUrl = string.Format("repos/fake/repo/pulls/42/commits"); var gitHubClient = Substitute.For(); var connection = Substitute.For(); diff --git a/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs b/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs index 8acd5a0a..0ebc183b 100644 --- a/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs +++ b/Octokit.Tests/Reactive/ObservableReleasesClientTests.cs @@ -182,7 +182,7 @@ namespace Octokit.Tests.Reactive var releasesClient = new ObservableReleasesClient(gitHubClient); var release = new Release("https://uploads.test.dev/does/not/matter/releases/1/assets{?name}"); var rawData = Substitute.For(); - var upload = new ReleaseAssetUpload { FileName = "example.zip", ContentType = "application/zip", RawData = rawData }; + var upload = new ReleaseAssetUpload("example.zip", "application/zip", rawData, null); releasesClient.UploadAsset(release, upload); @@ -195,7 +195,7 @@ namespace Octokit.Tests.Reactive var releasesClient = new ObservableReleasesClient(Substitute.For()); var release = new Release("https://uploads.github.com/anything"); - var uploadData = new ReleaseAssetUpload { FileName = "good", ContentType = "good/good", RawData = Stream.Null }; + var uploadData = new ReleaseAssetUpload("good", "good/good", Stream.Null, null); Assert.Throws(() => releasesClient.UploadAsset(null, uploadData)); Assert.Throws(() => releasesClient.UploadAsset(release, null)); diff --git a/Octokit.ruleset b/Octokit.ruleset index 3c2d2bb5..677c8b38 100644 --- a/Octokit.ruleset +++ b/Octokit.ruleset @@ -8,5 +8,6 @@ + \ No newline at end of file diff --git a/Octokit/Models/Response/Account.cs b/Octokit/Models/Response/Account.cs index 608d6dcb..3f2ef063 100644 --- a/Octokit/Models/Response/Account.cs +++ b/Octokit/Models/Response/Account.cs @@ -7,6 +7,35 @@ namespace Octokit /// public abstract class Account { + protected Account() { } + + protected Account(string avatarUrl, string bio, string blog, int collaborators, string company, DateTimeOffset createdAt, int diskUsage, string email, int followers, int following, bool? hireable, string htmlUrl, int totalPrivateRepos, int id, string location, string login, string name, int ownedPrivateRepos, Plan plan, int privateGists, int publicGists, int publicRepos, string url) + { + AvatarUrl = avatarUrl; + Bio = bio; + Blog = blog; + Collaborators = collaborators; + Company = company; + CreatedAt = createdAt; + DiskUsage = diskUsage; + Email = email; + Followers = followers; + Following = following; + Hireable = hireable; + HtmlUrl = htmlUrl; + TotalPrivateRepos = totalPrivateRepos; + Id = id; + Location = location; + Login = login; + Name = name; + OwnedPrivateRepos = ownedPrivateRepos; + Plan = plan; + PrivateGists = privateGists; + PublicGists = publicGists; + PublicRepos = publicRepos; + Url = url; + } + /// /// URL of the account's avatar. /// diff --git a/Octokit/Models/Response/Activity.cs b/Octokit/Models/Response/Activity.cs index 8b61e1fe..b0887f63 100644 --- a/Octokit/Models/Response/Activity.cs +++ b/Octokit/Models/Response/Activity.cs @@ -11,6 +11,19 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Activity { + public Activity() { } + + public Activity(string type, bool @public, Repository repo, User actor, Organization org, DateTimeOffset createdAt, string id) + { + Type = type; + Public = @public; + Repo = repo; + Actor = actor; + Org = org; + CreatedAt = createdAt; + Id = id; + } + /// /// The type of the activity. /// diff --git a/Octokit/Models/Response/AdditionsAndDeletions.cs b/Octokit/Models/Response/AdditionsAndDeletions.cs index dedf4b1f..1595a9a2 100644 --- a/Octokit/Models/Response/AdditionsAndDeletions.cs +++ b/Octokit/Models/Response/AdditionsAndDeletions.cs @@ -12,6 +12,15 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class AdditionsAndDeletions { + public AdditionsAndDeletions() { } + + public AdditionsAndDeletions(DateTimeOffset timestamp, int additions, int deletions) + { + Timestamp = timestamp; + Additions = additions; + Deletions = deletions; + } + /// /// Construct an instance of AdditionsAndDeletions /// diff --git a/Octokit/Models/Response/ApiError.cs b/Octokit/Models/Response/ApiError.cs index 2106542c..e28368b8 100644 --- a/Octokit/Models/Response/ApiError.cs +++ b/Octokit/Models/Response/ApiError.cs @@ -11,15 +11,20 @@ namespace Octokit #endif public class ApiError { - public ApiError() - { - } + public ApiError() { } public ApiError(string message) { Message = message; } + public ApiError(string message, string documentationUrl, IReadOnlyList errors) + { + Message = message; + DocumentationUrl = documentationUrl; + Errors = errors; + } + /// /// The error message /// diff --git a/Octokit/Models/Response/ApiErrorDetail.cs b/Octokit/Models/Response/ApiErrorDetail.cs index 2256768f..253a7e59 100644 --- a/Octokit/Models/Response/ApiErrorDetail.cs +++ b/Octokit/Models/Response/ApiErrorDetail.cs @@ -7,6 +7,16 @@ namespace Octokit #endif public class ApiErrorDetail { + public ApiErrorDetail() { } + + public ApiErrorDetail(string message, string code, string field, string resource) + { + Message = message; + Code = code; + Field = field; + Resource = resource; + } + public string Message { get; protected set; } public string Code { get; protected set; } diff --git a/Octokit/Models/Response/Application.cs b/Octokit/Models/Response/Application.cs index 0f75a0a4..16bed63a 100644 --- a/Octokit/Models/Response/Application.cs +++ b/Octokit/Models/Response/Application.cs @@ -10,6 +10,14 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Application { + public Application() { } + + public Application(string name, string url) + { + Name = name; + Url = url; + } + /// /// Name. /// diff --git a/Octokit/Models/Response/Author.cs b/Octokit/Models/Response/Author.cs index 299a0373..af0bb7c4 100644 --- a/Octokit/Models/Response/Author.cs +++ b/Octokit/Models/Response/Author.cs @@ -8,21 +8,34 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Author { + public Author() { } + + public Author(string login, int id, string avatarUrl, string url, string htmlUrl, string followersUrl, string followingUrl, string gistsUrl, string type, string starredUrl, string subscriptionsUrl, string organizationsUrl, string reposUrl, string eventsUrl, string receivedEventsUrl, bool siteAdmin) + { + Login = login; + Id = id; + AvatarUrl = avatarUrl; + Url = url; + HtmlUrl = htmlUrl; + FollowersUrl = followersUrl; + FollowingUrl = followingUrl; + GistsUrl = gistsUrl; + Type = type; + StarredUrl = starredUrl; + SubscriptionsUrl = subscriptionsUrl; + OrganizationsUrl = organizationsUrl; + ReposUrl = reposUrl; + EventsUrl = eventsUrl; + ReceivedEventsUrl = receivedEventsUrl; + SiteAdmin = siteAdmin; + } + public string Login { get; protected set; } public int Id { get; protected set; } public string AvatarUrl { get; protected set; } - /// - /// Hex Gravatar identifier, now obsolete - /// - /// - /// For more details: https://developer.github.com/changes/2014-09-05-removing-gravatar-id/ - /// - [Obsolete("This property is now obsolete, use AvatarUrl instead")] - public string GravatarId { get; protected set; } - public string Url { get; protected set; } public string HtmlUrl { get; protected set; } diff --git a/Octokit/Models/Response/Authorization.cs b/Octokit/Models/Response/Authorization.cs index eb7e0fb7..3624f92f 100644 --- a/Octokit/Models/Response/Authorization.cs +++ b/Octokit/Models/Response/Authorization.cs @@ -11,9 +11,7 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Authorization { - public Authorization() - { - } + public Authorization() { } public Authorization(string token) { @@ -21,6 +19,19 @@ namespace Octokit Token = token; } + public Authorization(int id, string url, Application application, string token, string note, string noteUrl, DateTimeOffset createdAt, DateTimeOffset updateAt, string[] scopes) + { + Id = id; + Url = url; + Application = application; + Token = token; + Note = note; + NoteUrl = noteUrl; + CreatedAt = createdAt; + UpdateAt = updateAt; + Scopes = scopes; + } + /// /// The Id of this . /// diff --git a/Octokit/Models/Response/Blob.cs b/Octokit/Models/Response/Blob.cs index 0589f7f9..aaa517db 100644 --- a/Octokit/Models/Response/Blob.cs +++ b/Octokit/Models/Response/Blob.cs @@ -7,6 +7,16 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Blob { + public Blob() { } + + public Blob(string content, EncodingType encoding, string sha, int size) + { + Content = content; + Encoding = encoding; + Sha = sha; + Size = size; + } + /// /// The content of the blob. /// diff --git a/Octokit/Models/Response/BlobReference.cs b/Octokit/Models/Response/BlobReference.cs index 11a4ed01..258a4bce 100644 --- a/Octokit/Models/Response/BlobReference.cs +++ b/Octokit/Models/Response/BlobReference.cs @@ -7,6 +7,13 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class BlobReference { + public BlobReference() { } + + public BlobReference(string sha) + { + Sha = sha; + } + /// /// The SHA of the blob. /// diff --git a/Octokit/Models/Response/Branch.cs b/Octokit/Models/Response/Branch.cs index fe30e0c6..a5536681 100644 --- a/Octokit/Models/Response/Branch.cs +++ b/Octokit/Models/Response/Branch.cs @@ -7,6 +7,14 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Branch { + public Branch() { } + + public Branch(string name, GitReference commit) + { + Name = name; + Commit = commit; + } + /// /// Name of this . /// diff --git a/Octokit/Models/Response/CodeFrequency.cs b/Octokit/Models/Response/CodeFrequency.cs index 06d34b32..8aa579d0 100644 --- a/Octokit/Models/Response/CodeFrequency.cs +++ b/Octokit/Models/Response/CodeFrequency.cs @@ -12,6 +12,13 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class CodeFrequency { + public CodeFrequency() { } + + public CodeFrequency(IEnumerable additionsAndDeletionsByWeek) + { + AdditionsAndDeletionsByWeek = additionsAndDeletionsByWeek; + } + /// /// Construct an instance of CodeFrequency /// diff --git a/Octokit/Models/Response/CombinedCommitStatus.cs b/Octokit/Models/Response/CombinedCommitStatus.cs index 1c178558..a7c9c2fa 100644 --- a/Octokit/Models/Response/CombinedCommitStatus.cs +++ b/Octokit/Models/Response/CombinedCommitStatus.cs @@ -7,6 +7,17 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class CombinedCommitStatus { + public CombinedCommitStatus() { } + + public CombinedCommitStatus(CommitState state, string sha, int totalCount, IReadOnlyList statuses, Repository repository) + { + State = state; + Sha = sha; + TotalCount = totalCount; + Statuses = statuses; + Repository = repository; + } + /// /// The combined state of the commits. /// diff --git a/Octokit/Models/Response/Commit.cs b/Octokit/Models/Response/Commit.cs index 00232f91..3100b19e 100644 --- a/Octokit/Models/Response/Commit.cs +++ b/Octokit/Models/Response/Commit.cs @@ -6,6 +6,19 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Commit : GitReference { + public Commit() { } + + public Commit(string url, string label, string @ref, string sha, User user, Repository repository, string message, SignatureResponse author, SignatureResponse committer, GitReference tree, IEnumerable parents, int commentCount) + : base(url, label, @ref, sha, user, repository) + { + Message = message; + Author = author; + Committer = committer; + Tree = tree; + Parents = parents; + CommentCount = commentCount; + } + public string Message { get; protected set; } public SignatureResponse Author { get; protected set; } diff --git a/Octokit/Models/Response/CommitActivity.cs b/Octokit/Models/Response/CommitActivity.cs index aa34d374..32312401 100644 --- a/Octokit/Models/Response/CommitActivity.cs +++ b/Octokit/Models/Response/CommitActivity.cs @@ -9,6 +9,8 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class CommitActivity { + public CommitActivity() { } + public CommitActivity(IEnumerable activity) { Activity = activity; diff --git a/Octokit/Models/Response/CommitComment.cs b/Octokit/Models/Response/CommitComment.cs index cf618faf..9685cc0e 100644 --- a/Octokit/Models/Response/CommitComment.cs +++ b/Octokit/Models/Response/CommitComment.cs @@ -11,6 +11,23 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class CommitComment { + public CommitComment() { } + + public CommitComment(int id, Uri url, Uri htmlUrl, string body, string path, int position, int? line, string commitId, User user, DateTimeOffset createdAt, DateTimeOffset? updatedAt) + { + Id = id; + Url = url; + HtmlUrl = htmlUrl; + Body = body; + Path = path; + Position = position; + Line = line; + CommitId = commitId; + User = user; + CreatedAt = createdAt; + UpdatedAt = updatedAt; + } + /// /// The issue comment Id. /// diff --git a/Octokit/Models/Response/CommitContent.cs b/Octokit/Models/Response/CommitContent.cs index 863eff5e..8c36e56c 100644 --- a/Octokit/Models/Response/CommitContent.cs +++ b/Octokit/Models/Response/CommitContent.cs @@ -11,6 +11,21 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class RepositoryContentInfo { + public RepositoryContentInfo() { } + + public RepositoryContentInfo(string name, string path, string sha, int size, ContentType type, Uri downloadUrl, Uri url, Uri gitUrl, Uri htmlUrl) + { + Name = name; + Path = path; + Sha = sha; + Size = size; + Type = type; + DownloadUrl = downloadUrl; + Url = url; + GitUrl = gitUrl; + HtmlUrl = htmlUrl; + } + /// /// Name of the content. /// diff --git a/Octokit/Models/Response/CommitStatus.cs b/Octokit/Models/Response/CommitStatus.cs index 7838620d..3e03411d 100644 --- a/Octokit/Models/Response/CommitStatus.cs +++ b/Octokit/Models/Response/CommitStatus.cs @@ -7,6 +7,21 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class CommitStatus { + public CommitStatus() { } + + public CommitStatus(DateTimeOffset createdAt, DateTimeOffset updatedAt, CommitState state, Uri targetUrl, string description, string context, int id, Uri url, User creator) + { + CreatedAt = createdAt; + UpdatedAt = updatedAt; + State = state; + TargetUrl = targetUrl; + Description = description; + Context = context; + Id = id; + Url = url; + Creator = creator; + } + /// /// The date the commit status was created. /// diff --git a/Octokit/Models/Response/CompareResult.cs b/Octokit/Models/Response/CompareResult.cs index 7587852c..746eb5c4 100644 --- a/Octokit/Models/Response/CompareResult.cs +++ b/Octokit/Models/Response/CompareResult.cs @@ -8,6 +8,24 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class CompareResult { + public CompareResult() { } + + public CompareResult(string url, string htmlUrl, string permalinkUrl, string diffUrl, string patchUrl, GitHubCommit baseCommit, GitHubCommit mergedBaseCommit, string status, int aheadBy, int behindBy, int totalCommits, IReadOnlyList commits) + { + Url = url; + HtmlUrl = htmlUrl; + PermalinkUrl = permalinkUrl; + DiffUrl = diffUrl; + PatchUrl = patchUrl; + BaseCommit = baseCommit; + MergedBaseCommit = mergedBaseCommit; + Status = status; + AheadBy = aheadBy; + BehindBy = behindBy; + TotalCommits = totalCommits; + Commits = commits; + } + public string Url { get; protected set; } public string HtmlUrl { get; protected set; } public string PermalinkUrl { get; protected set; } diff --git a/Octokit/Models/Response/Contributor.cs b/Octokit/Models/Response/Contributor.cs index 36f28c07..28146032 100644 --- a/Octokit/Models/Response/Contributor.cs +++ b/Octokit/Models/Response/Contributor.cs @@ -11,6 +11,15 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Contributor { + public Contributor() { } + + public Contributor(Author author, int total, IReadOnlyList weeks) + { + Author = author; + Total = total; + Weeks = weeks; + } + public Author Author { get; protected set; } public int Total { get; protected set; } diff --git a/Octokit/Models/Response/DeployKey.cs b/Octokit/Models/Response/DeployKey.cs index 397ac4e8..7198587a 100644 --- a/Octokit/Models/Response/DeployKey.cs +++ b/Octokit/Models/Response/DeployKey.cs @@ -11,6 +11,16 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class DeployKey { + public DeployKey() { } + + public DeployKey(int id, string key, string url, string title) + { + Id = id; + Key = key; + Url = url; + Title = title; + } + public int Id { get; protected set; } public string Key { get; protected set; } public string Url { get; protected set; } diff --git a/Octokit/Models/Response/Deployment.cs b/Octokit/Models/Response/Deployment.cs index cf9a94e9..cf9b0357 100644 --- a/Octokit/Models/Response/Deployment.cs +++ b/Octokit/Models/Response/Deployment.cs @@ -11,6 +11,21 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Deployment { + public Deployment() { } + + public Deployment(int id, string sha, string url, User creator, IReadOnlyDictionary payload, DateTimeOffset createdAt, DateTimeOffset updatedAt, string description, string statusesUrl) + { + Id = id; + Sha = sha; + Url = url; + Creator = creator; + Payload = payload; + CreatedAt = createdAt; + UpdatedAt = updatedAt; + Description = description; + StatusesUrl = statusesUrl; + } + /// /// Id of this deployment. /// diff --git a/Octokit/Models/Response/DeploymentStatus.cs b/Octokit/Models/Response/DeploymentStatus.cs index 24fa8a21..df4e7415 100644 --- a/Octokit/Models/Response/DeploymentStatus.cs +++ b/Octokit/Models/Response/DeploymentStatus.cs @@ -8,6 +8,21 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class DeploymentStatus { + public DeploymentStatus() { } + + public DeploymentStatus(int id, string url, DeploymentState state, User creator, IReadOnlyDictionary payload, string targetUrl, DateTimeOffset createdAt, DateTimeOffset updatedAt, string description) + { + Id = id; + Url = url; + State = state; + Creator = creator; + Payload = payload; + TargetUrl = targetUrl; + CreatedAt = createdAt; + UpdatedAt = updatedAt; + Description = description; + } + /// /// Id of this deployment status. /// diff --git a/Octokit/Models/Response/EmailAddress.cs b/Octokit/Models/Response/EmailAddress.cs index e2ec83b4..fc6716c8 100644 --- a/Octokit/Models/Response/EmailAddress.cs +++ b/Octokit/Models/Response/EmailAddress.cs @@ -11,6 +11,15 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class EmailAddress { + public EmailAddress() { } + + public EmailAddress(string email, bool verified, bool primary) + { + Email = email; + Verified = verified; + Primary = primary; + } + /// /// The email address /// diff --git a/Octokit/Models/Response/Emoji.cs b/Octokit/Models/Response/Emoji.cs index fae29867..1e2c29bf 100644 --- a/Octokit/Models/Response/Emoji.cs +++ b/Octokit/Models/Response/Emoji.cs @@ -7,6 +7,8 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Emoji { + public Emoji() { } + public Emoji(string name, Uri url) { Ensure.ArgumentNotNullOrEmptyString(name, "name"); diff --git a/Octokit/Models/Response/EventInfo.cs b/Octokit/Models/Response/EventInfo.cs index 33cf64e9..5710c2ed 100644 --- a/Octokit/Models/Response/EventInfo.cs +++ b/Octokit/Models/Response/EventInfo.cs @@ -8,6 +8,20 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class EventInfo { + public EventInfo() { } + + public EventInfo(int id, Uri url, User actor, User assignee, Label label, EventInfoState @event, string commitId, DateTimeOffset createdAt) + { + Id = id; + Url = url; + Actor = actor; + Assignee = assignee; + Label = label; + Event = @event; + CommitId = commitId; + CreatedAt = createdAt; + } + /// /// The id of the issue/pull request event. /// diff --git a/Octokit/Models/Response/Feed.cs b/Octokit/Models/Response/Feed.cs index bbc85f0e..c2b9dc85 100644 --- a/Octokit/Models/Response/Feed.cs +++ b/Octokit/Models/Response/Feed.cs @@ -13,6 +13,19 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Feed { + public Feed() { } + + public Feed(string timelineUrl, string userUrl, string currentUserPublicUrl, string currentUserUrl, string currentUserActorUrl, string currentUserOrganizationUrl, FeedLinks links) + { + TimelineUrl = timelineUrl; + UserUrl = userUrl; + CurrentUserPublicUrl = currentUserPublicUrl; + CurrentUserUrl = currentUserUrl; + CurrentUserActorUrl = currentUserActorUrl; + CurrentUserOrganizationUrl = currentUserOrganizationUrl; + Links = links; + } + /// /// The GitHub global public timeline /// diff --git a/Octokit/Models/Response/FeedLink.cs b/Octokit/Models/Response/FeedLink.cs index 899c1c28..9e37de0e 100644 --- a/Octokit/Models/Response/FeedLink.cs +++ b/Octokit/Models/Response/FeedLink.cs @@ -10,6 +10,18 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class FeedLinks { + public FeedLinks() { } + + public FeedLinks(FeedLink timeline, FeedLink user, FeedLink currentUserPublic, FeedLink currentUser, FeedLink currentUserActor, FeedLink currentUserOrganization) + { + Timeline = timeline; + User = user; + CurrentUserPublic = currentUserPublic; + CurrentUser = currentUser; + CurrentUserActor = currentUserActor; + CurrentUserOrganization = currentUserOrganization; + } + /// /// The GitHub global public timeline /// @@ -52,6 +64,14 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class FeedLink { + public FeedLink() { } + + public FeedLink(string href, string type) + { + Href = href; + Type = type; + } + /// /// Link to feed /// diff --git a/Octokit/Models/Response/Gist.cs b/Octokit/Models/Response/Gist.cs index be50f234..6bd32dcf 100644 --- a/Octokit/Models/Response/Gist.cs +++ b/Octokit/Models/Response/Gist.cs @@ -8,6 +8,27 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Gist { + public Gist() { } + + public Gist(string url, string id, string description, bool @public, User owner, IReadOnlyDictionary files, int comments, string commentsUrl, string htmlUrl, string gitPullUrl, string gitPushUrl, DateTimeOffset createdAt, DateTimeOffset updatedAt, IReadOnlyList forks, IReadOnlyList history) + { + Url = url; + Id = id; + Description = description; + Public = @public; + Owner = owner; + Files = files; + Comments = comments; + CommentsUrl = commentsUrl; + HtmlUrl = htmlUrl; + GitPullUrl = gitPullUrl; + GitPushUrl = gitPushUrl; + CreatedAt = createdAt; + UpdatedAt = updatedAt; + Forks = forks; + History = history; + } + /// /// The API URL for this . /// diff --git a/Octokit/Models/Response/GistChangeStatus.cs b/Octokit/Models/Response/GistChangeStatus.cs index 1f9ca062..7cf1f371 100644 --- a/Octokit/Models/Response/GistChangeStatus.cs +++ b/Octokit/Models/Response/GistChangeStatus.cs @@ -10,6 +10,15 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GistChangeStatus { + public GistChangeStatus() { } + + public GistChangeStatus(int deletions, int additions, int total) + { + Deletions = deletions; + Additions = additions; + Total = total; + } + /// /// The number of deletions that occurred as part of this change. /// diff --git a/Octokit/Models/Response/GistComment.cs b/Octokit/Models/Response/GistComment.cs index 418fd06b..4abb29be 100644 --- a/Octokit/Models/Response/GistComment.cs +++ b/Octokit/Models/Response/GistComment.cs @@ -7,6 +7,18 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GistComment { + public GistComment() { } + + public GistComment(int id, Uri url, string body, User user, DateTimeOffset createdAt, DateTimeOffset? updatedAt) + { + Id = id; + Url = url; + Body = body; + User = user; + CreatedAt = createdAt; + UpdatedAt = updatedAt; + } + /// /// The gist comment id. /// diff --git a/Octokit/Models/Response/GistFile.cs b/Octokit/Models/Response/GistFile.cs index 8ffac091..10d6d28f 100644 --- a/Octokit/Models/Response/GistFile.cs +++ b/Octokit/Models/Response/GistFile.cs @@ -8,6 +8,19 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GistFile { + public GistFile() { } + + [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly")] + public GistFile(int size, string filename, string type, string language, string content, string rawUrl) + { + Size = size; + Filename = filename; + Type = type; + Language = language; + Content = content; + RawUrl = rawUrl; + } + /// /// The size in bytes of the file. /// diff --git a/Octokit/Models/Response/GistFork.cs b/Octokit/Models/Response/GistFork.cs index 26c9b79d..9421f95b 100644 --- a/Octokit/Models/Response/GistFork.cs +++ b/Octokit/Models/Response/GistFork.cs @@ -7,6 +7,15 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GistFork { + public GistFork() { } + + public GistFork(User user, string url, DateTimeOffset createdAt) + { + User = user; + Url = url; + CreatedAt = createdAt; + } + /// /// The that created this /// diff --git a/Octokit/Models/Response/GistHistory.cs b/Octokit/Models/Response/GistHistory.cs index 679659b8..902d831a 100644 --- a/Octokit/Models/Response/GistHistory.cs +++ b/Octokit/Models/Response/GistHistory.cs @@ -10,6 +10,17 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GistHistory { + public GistHistory() { } + + public GistHistory(string url, string version, User user, GistChangeStatus changeStatus, DateTimeOffset committedAt) + { + Url = url; + Version = version; + User = user; + ChangeStatus = changeStatus; + CommittedAt = committedAt; + } + /// /// The url that can be used by the API to retrieve this version of the . /// diff --git a/Octokit/Models/Response/GitHubCommit.cs b/Octokit/Models/Response/GitHubCommit.cs index 428a9ef9..3f3c679d 100644 --- a/Octokit/Models/Response/GitHubCommit.cs +++ b/Octokit/Models/Response/GitHubCommit.cs @@ -9,6 +9,21 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GitHubCommit : GitReference { + public GitHubCommit() { } + + public GitHubCommit(string url, string label, string @ref, string sha, User user, Repository repository, Author author, string commentsUrl, Commit commit, Author committer, string htmlUrl, GitHubCommitStats stats, IReadOnlyList parents, IReadOnlyList files) + : base(url, label, @ref, sha, user, repository) + { + Author = author; + CommentsUrl = commentsUrl; + Commit = commit; + Committer = committer; + HtmlUrl = htmlUrl; + Stats = stats; + Parents = parents; + Files = files; + } + public Author Author { get; protected set; } public string CommentsUrl { get; protected set; } diff --git a/Octokit/Models/Response/GitHubCommitFile.cs b/Octokit/Models/Response/GitHubCommitFile.cs index c8d2b571..05c6e876 100644 --- a/Octokit/Models/Response/GitHubCommitFile.cs +++ b/Octokit/Models/Response/GitHubCommitFile.cs @@ -11,6 +11,23 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GitHubCommitFile { + public GitHubCommitFile() { } + + [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly")] + public GitHubCommitFile(string filename, int additions, int deletions, int changes, string status, string blobUrl, string contentsUrl, string rawUrl, string sha, string patch) + { + Filename = filename; + Additions = additions; + Deletions = deletions; + Changes = changes; + Status = status; + BlobUrl = blobUrl; + ContentsUrl = contentsUrl; + RawUrl = rawUrl; + Sha = sha; + Patch = patch; + } + /// /// The name of the file /// diff --git a/Octokit/Models/Response/GitHubCommitStats.cs b/Octokit/Models/Response/GitHubCommitStats.cs index 91caca3d..8a10bb66 100644 --- a/Octokit/Models/Response/GitHubCommitStats.cs +++ b/Octokit/Models/Response/GitHubCommitStats.cs @@ -10,6 +10,15 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GitHubCommitStats { + public GitHubCommitStats() { } + + public GitHubCommitStats(int additions, int deletions, int total) + { + Additions = additions; + Deletions = deletions; + Total = total; + } + /// /// The number of additions made within the commit /// diff --git a/Octokit/Models/Response/GitReference.cs b/Octokit/Models/Response/GitReference.cs index 9346b5ae..18d6f9ef 100644 --- a/Octokit/Models/Response/GitReference.cs +++ b/Octokit/Models/Response/GitReference.cs @@ -8,6 +8,18 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GitReference { + public GitReference() { } + + public GitReference(string url, string label, string @ref, string sha, User user, Repository repository) + { + Url = url; + Label = label; + Ref = @ref; + Sha = sha; + User = user; + Repository = repository; + } + /// /// The URL associated with this reference. /// diff --git a/Octokit/Models/Response/GitTag.cs b/Octokit/Models/Response/GitTag.cs index fde145ef..956880d2 100644 --- a/Octokit/Models/Response/GitTag.cs +++ b/Octokit/Models/Response/GitTag.cs @@ -5,6 +5,17 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class GitTag : GitReference { + public GitTag() { } + + public GitTag(string url, string label, string @ref, string sha, User user, Repository repository, string tag, string message, SignatureResponse tagger, TagObject objectVar) + : base(url, label, @ref, sha, user, repository) + { + Tag = tag; + Message = message; + Tagger = tagger; + Object = objectVar; + } + public string Tag { get; protected set; } public string Message { get; protected set; } diff --git a/Octokit/Models/Response/Issue.cs b/Octokit/Models/Response/Issue.cs index b5bc16de..28140ce4 100644 --- a/Octokit/Models/Response/Issue.cs +++ b/Octokit/Models/Response/Issue.cs @@ -10,6 +10,27 @@ namespace Octokit [DebuggerDisplay("{DebuggerDisplay,nq}")] public class Issue { + public Issue() { } + + public Issue(Uri url, Uri htmlUrl, int number, ItemState state, string title, string body, User user, IReadOnlyList