mirror of
https://github.com/zoriya/octokit.net.git
synced 2025-12-05 23:06:10 +00:00
* bugfix - PUT should have a payload for Mark as Read (#1579) * bugfix - PUT should have a payload for Mark as Read * also fix the Observable client test * add integration tests for MarkRead methods * Fixup MarkReadForRepository methods to specify a body in the PUT request * Fix unit tests for regular and observable client * helps if the new files are included in the test project :) * Cloning ApiInfo object should work when some fields are null (#1580) * Adjust ApiInfo.Clone() to work even if some elements (eg ETag) are null * Remove c# 6 language feature and do it the old school way * Add a test for cloning ApiInfo when some fields are null * The 3 lists can never be null anyway so remove some un-needed statements * Add test for null RateLimit * Remove Rx-Main dependency from samples This resolves #1592 - LINQPad doesn't understand how to restore this unlisted package and it's not actually needed in the samples. * Adding RemovedFromProject and other missing EventInfoState types. (#1591) * Adding missing review types to event info. * Fixing whitespace. * Reword `BaseRefChanged` comment * Adding missing event types. * Change response models 'Url' properties from `Uri` to `string` (#1585) * Add convention test to ensure 'Url' properties are of type string Closes #1582 * Change 'Url' properties from Uri to string Global Find/Replace FTW! * fix compilation errors in the integration tests project * Extend 'Url' properties type check to request models * Stick to convention tests naming convention * Remove unused using directives in models Changing from `Uri` to `string` means the `using System;` directive was not needed anymore in some files * Update exception message wording * empty commit to trigger a new build - hopefully Travis passes * add convention test to ensure request models have Uri 'Url' properties * make request models 'Url' properties Uri fix typo in convention test name * revert some request models 'Url' properties as `string` see https://github.com/octokit/octokit.net/pull/1585#issuecomment-297186728 * Change test so that all model types must have 'Url' properties of type string - Filter test input to only get types which have 'Url' properties - Merge response and request model types tests into one - Unparameterize the exception since we only check for the string type now * Fix string.Format tokens If this PR doesn't get rebased, it'll be my wall of shame FOREVER! * and then it's even more embarrassing when the commit message says rebased but you really meant squashed * Remove exclusion of `Release` from request models
220 lines
7.2 KiB
C#
220 lines
7.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Globalization;
|
|
|
|
namespace Octokit
|
|
{
|
|
[DebuggerDisplay("{DebuggerDisplay,nq}")]
|
|
public class PullRequest
|
|
{
|
|
public PullRequest() { }
|
|
|
|
public PullRequest(int number)
|
|
{
|
|
Number = number;
|
|
}
|
|
|
|
public PullRequest(long id, string url, string htmlUrl, string diffUrl, string patchUrl, string issueUrl, string statusesUrl, int number, ItemState state, string title, string body, DateTimeOffset createdAt, DateTimeOffset updatedAt, DateTimeOffset? closedAt, DateTimeOffset? mergedAt, GitReference head, GitReference @base, User user, User assignee, IReadOnlyList<User> assignees, bool? mergeable, User mergedBy, string mergeCommitSha, int comments, int commits, int additions, int deletions, int changedFiles, Milestone milestone, bool locked)
|
|
{
|
|
Id = id;
|
|
Url = url;
|
|
HtmlUrl = htmlUrl;
|
|
DiffUrl = diffUrl;
|
|
PatchUrl = patchUrl;
|
|
IssueUrl = issueUrl;
|
|
StatusesUrl = statusesUrl;
|
|
Number = number;
|
|
State = state;
|
|
Title = title;
|
|
Body = body;
|
|
CreatedAt = createdAt;
|
|
UpdatedAt = updatedAt;
|
|
ClosedAt = closedAt;
|
|
MergedAt = mergedAt;
|
|
Head = head;
|
|
Base = @base;
|
|
User = user;
|
|
Assignee = assignee;
|
|
Assignees = assignees;
|
|
Mergeable = mergeable;
|
|
MergedBy = mergedBy;
|
|
MergeCommitSha = mergeCommitSha;
|
|
Comments = comments;
|
|
Commits = commits;
|
|
Additions = additions;
|
|
Deletions = deletions;
|
|
ChangedFiles = changedFiles;
|
|
Milestone = milestone;
|
|
Locked = locked;
|
|
}
|
|
|
|
/// <summary>
|
|
/// The internal Id for this pull request (not the pull request number)
|
|
/// </summary>
|
|
public long Id { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The URL for this pull request.
|
|
/// </summary>
|
|
public string Url { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The URL for the pull request page.
|
|
/// </summary>
|
|
public string HtmlUrl { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The URL for the pull request's diff (.diff) file.
|
|
/// </summary>
|
|
public string DiffUrl { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The URL for the pull request's patch (.patch) file.
|
|
/// </summary>
|
|
public string PatchUrl { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The URL for the specific pull request issue.
|
|
/// </summary>
|
|
public string IssueUrl { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The URL for the pull request statuses.
|
|
/// </summary>
|
|
public string StatusesUrl { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The pull request number.
|
|
/// </summary>
|
|
public int Number { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// Whether the pull request is open or closed. The default is <see cref="ItemState.Open"/>.
|
|
/// </summary>
|
|
public ItemState State { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// Title of the pull request.
|
|
/// </summary>
|
|
public string Title { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The body (content) contained within the pull request.
|
|
/// </summary>
|
|
public string Body { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// When the pull request was created.
|
|
/// </summary>
|
|
public DateTimeOffset CreatedAt { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// When the pull request was last updated.
|
|
/// </summary>
|
|
public DateTimeOffset UpdatedAt { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// When the pull request was closed.
|
|
/// </summary>
|
|
public DateTimeOffset? ClosedAt { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// When the pull request was merged.
|
|
/// </summary>
|
|
public DateTimeOffset? MergedAt { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The HEAD reference for the pull request.
|
|
/// </summary>
|
|
public GitReference Head { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The BASE reference for the pull request.
|
|
/// </summary>
|
|
public GitReference Base { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The user who created the pull request.
|
|
/// </summary>
|
|
public User User { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The user who is assigned the pull request.
|
|
/// </summary>
|
|
public User Assignee { get; protected set; }
|
|
|
|
/// <summary>
|
|
///The multiple users this pull request is assigned to.
|
|
/// </summary>
|
|
public IReadOnlyList<User> Assignees { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The milestone, if any, that this pull request is assigned to.
|
|
/// </summary>
|
|
public Milestone Milestone { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// Whether or not the pull request has been merged.
|
|
/// </summary>
|
|
public bool Merged
|
|
{
|
|
get { return MergedAt.HasValue; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Whether or not the pull request can be merged.
|
|
/// </summary>
|
|
public bool? Mergeable { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The user who merged the pull request.
|
|
/// </summary>
|
|
public User MergedBy { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// The value of this field changes depending on the state of the pull request.
|
|
/// Not Merged - the hash of the test commit used to determine mergability.
|
|
/// Merged with merge commit - the hash of said merge commit.
|
|
/// Merged via squashing - the hash of the squashed commit added to the base branch.
|
|
/// Merged via rebase - the hash of the commit that the base branch was updated to.
|
|
/// </summary>
|
|
public string MergeCommitSha { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// Total number of comments contained in the pull request.
|
|
/// </summary>
|
|
public int Comments { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// Total number of commits contained in the pull request.
|
|
/// </summary>
|
|
public int Commits { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// Total number of additions contained in the pull request.
|
|
/// </summary>
|
|
public int Additions { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// Total number of deletions contained in the pull request.
|
|
/// </summary>
|
|
public int Deletions { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// Total number of files changed in the pull request.
|
|
/// </summary>
|
|
public int ChangedFiles { get; protected set; }
|
|
|
|
/// <summary>
|
|
/// If the issue is locked or not
|
|
/// </summary>
|
|
public bool Locked { get; protected set; }
|
|
|
|
internal string DebuggerDisplay
|
|
{
|
|
get { return string.Format(CultureInfo.InvariantCulture, "Number: {0} State: {1}", Number, State); }
|
|
}
|
|
}
|
|
}
|