Files
octokit.net/Octokit/Models/Response/Release.cs
Ryan Gribble 23b25f5922 add GraphQL Node ID's to response models (#1806)
* add node_id to Deployments payloads (Deployment and DeploymentStatus and Account/User/Organization)

* add node_id to gist responses

* add node_id to Git Blob

* add node_id to Git Commit response

* add node_id to GitReference response

* add node_id to everything that inherits GitReference

* add node_id to Issue

* add node_id to IssueComment/IssueEvent

* add node_id to Label

* add node_id to Milestone

* add node_id to Project/ProjectCard/ProjectColumn

* add node_id to Reaction

* add node_id to Release/ReleaseAsset

* add node_id to Team

* add node_id to Repository.RepositoryContributor/RepositoryInvitation/RepositoryTag

* add node_id to Commit related responses

* Add node_id to PullRequest related responses

* Add node_id to any response models it was found to be missing, based on auditing integration test responses

* remove unused test variable that was using a response ctor

* fix tests that need to handle node_id now

* Committer is a request object as well as response, so make nodeId optional

* fix test
2018-06-29 15:41:50 +10:00

100 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
namespace Octokit
{
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class Release
{
public Release() { }
public Release(string url, string htmlUrl, string assetsUrl, string uploadUrl, int id, string nodeId, string tagName, string targetCommitish, string name, string body, bool draft, bool prerelease, DateTimeOffset createdAt, DateTimeOffset? publishedAt, Author author, string tarballUrl, string zipballUrl, IReadOnlyList<ReleaseAsset> assets)
{
Url = url;
HtmlUrl = htmlUrl;
AssetsUrl = assetsUrl;
UploadUrl = uploadUrl;
Id = id;
NodeId = nodeId;
TagName = tagName;
TargetCommitish = targetCommitish;
Name = name;
Body = body;
Draft = draft;
Prerelease = prerelease;
CreatedAt = createdAt;
PublishedAt = publishedAt;
Author = author;
TarballUrl = tarballUrl;
ZipballUrl = zipballUrl;
Assets = assets;
}
[SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", MessageId = "0#")]
public Release(string uploadUrl)
{
UploadUrl = uploadUrl;
}
public string Url { get; protected set; }
public string HtmlUrl { get; protected set; }
public string AssetsUrl { get; protected set; }
public string UploadUrl { get; protected set; }
public int Id { get; protected set; }
/// <summary>
/// GraphQL Node Id
/// </summary>
public string NodeId { get; protected set; }
public string TagName { get; protected set; }
public string TargetCommitish { get; protected set; }
public string Name { get; protected set; }
public string Body { get; protected set; }
public bool Draft { get; protected set; }
public bool Prerelease { get; protected set; }
public DateTimeOffset CreatedAt { get; protected set; }
public DateTimeOffset? PublishedAt { get; protected set; }
public Author Author { get; protected set; }
public string TarballUrl { get; protected set; }
public string ZipballUrl { get; protected set; }
public IReadOnlyList<ReleaseAsset> Assets { get; protected set; }
internal string DebuggerDisplay
{
get { return string.Format(CultureInfo.InvariantCulture, "Name: {0} PublishedAt: {1}", Name, PublishedAt); }
}
public ReleaseUpdate ToUpdate()
{
return new ReleaseUpdate
{
Body = Body,
Draft = Draft,
Name = Name,
Prerelease = Prerelease,
TargetCommitish = TargetCommitish,
TagName = TagName
};
}
}
}