mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-01 10:25:36 +00:00
Merge pull request #494 from gabrielweyer/pull-request-commits
[WIP] Pull Request Commits have this neat comment_count property
This commit is contained in:
@@ -10,6 +10,9 @@ public class PullRequestsClientTests : IDisposable
|
||||
readonly IGitHubClient _client;
|
||||
readonly IPullRequestsClient _fixture;
|
||||
readonly Repository _repository;
|
||||
readonly IRepositoryCommentsClient _repositoryCommentsClient;
|
||||
|
||||
const string branchName = "my-branch";
|
||||
|
||||
public PullRequestsClientTests()
|
||||
{
|
||||
@@ -19,6 +22,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
};
|
||||
|
||||
_fixture = _client.Repository.PullRequest;
|
||||
_repositoryCommentsClient = _client.Repository.RepositoryComments;
|
||||
|
||||
var repoName = Helper.MakeNameWithTimestamp("source-repo");
|
||||
|
||||
@@ -30,7 +34,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var result = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
Assert.Equal("a pull request", result.Title);
|
||||
@@ -42,7 +46,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var result = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var pullRequests = await _fixture.GetForRepository(Helper.UserName, _repository.Name);
|
||||
@@ -56,7 +60,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var result = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var openPullRequests = new PullRequestRequest { State = ItemState.Open };
|
||||
@@ -71,7 +75,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var openPullRequests = new PullRequestRequest { State = ItemState.Closed };
|
||||
@@ -85,7 +89,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var updatePullRequest = new PullRequestUpdate { Title = "updated title", Body = "Hello New Body" };
|
||||
@@ -100,7 +104,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var updatePullRequest = new PullRequestUpdate { State = ItemState.Closed };
|
||||
@@ -116,7 +120,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var updatePullRequest = new PullRequestUpdate { State = ItemState.Closed };
|
||||
@@ -133,7 +137,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var result = await _fixture.Merged(Helper.UserName, _repository.Name, pullRequest.Number);
|
||||
@@ -146,7 +150,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var merge = new MergePullRequest("thing the thing");
|
||||
@@ -160,7 +164,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var merge = new MergePullRequest("thing the thing");
|
||||
@@ -176,7 +180,7 @@ public class PullRequestsClientTests : IDisposable
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", "my-branch", "master");
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
var result = await _fixture.Commits(Helper.UserName, _repository.Name, pullRequest.Number);
|
||||
@@ -185,6 +189,35 @@ public class PullRequestsClientTests : IDisposable
|
||||
Assert.Equal("this is the commit to merge into the pull request", result[0].Commit.Message);
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CanGetCommitsAndCommentCount()
|
||||
{
|
||||
await CreateTheWorld();
|
||||
|
||||
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
|
||||
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
|
||||
|
||||
// create new commit for branch
|
||||
|
||||
const string commitMessage = "Another commit in branch";
|
||||
|
||||
var branch = await _client.GitDatabase.Reference.Get(Helper.UserName, _repository.Name, "heads/" + branchName);
|
||||
|
||||
var newTree = await CreateTree(new Dictionary<string, string> { { "README.md", "Hello World!" } });
|
||||
var newCommit = await CreateCommit(commitMessage, newTree.Sha, branch.Object.Sha);
|
||||
await _client.GitDatabase.Reference.Update(Helper.UserName, _repository.Name, "heads/" + branchName, new ReferenceUpdate(newCommit.Sha));
|
||||
|
||||
await _repositoryCommentsClient.Create(Helper.UserName, _repository.Name, newCommit.Sha, new NewCommitComment("I am a nice comment") { Path = "README.md", Position = 1 });
|
||||
|
||||
var result = await _fixture.Commits(Helper.UserName, _repository.Name, pullRequest.Number);
|
||||
|
||||
Assert.Equal(2, result.Count);
|
||||
Assert.Equal("this is the commit to merge into the pull request", result[0].Commit.Message);
|
||||
Assert.Equal(0, result[0].Commit.CommentCount);
|
||||
Assert.Equal(commitMessage, result[1].Commit.Message);
|
||||
Assert.Equal(1, result[1].Commit.CommentCount);
|
||||
}
|
||||
|
||||
async Task CreateTheWorld()
|
||||
{
|
||||
var master = await _client.GitDatabase.Reference.Get(Helper.UserName, _repository.Name, "heads/master");
|
||||
@@ -198,13 +231,13 @@ public class PullRequestsClientTests : IDisposable
|
||||
|
||||
// create new commit for feature branch
|
||||
var featureBranchTree = await CreateTree(new Dictionary<string, string> { { "README.md", "I am overwriting this blob with something new" } });
|
||||
var newFeature = await CreateCommit("this is the commit to merge into the pull request", featureBranchTree.Sha, newMaster.Sha);
|
||||
var featureBranchCommit = await CreateCommit("this is the commit to merge into the pull request", featureBranchTree.Sha, newMaster.Sha);
|
||||
|
||||
// create branch
|
||||
await _client.GitDatabase.Reference.Create(Helper.UserName, _repository.Name, new NewReference("refs/heads/my-branch", newFeature.Sha));
|
||||
await _client.GitDatabase.Reference.Create(Helper.UserName, _repository.Name, new NewReference("refs/heads/my-branch", featureBranchCommit.Sha));
|
||||
}
|
||||
|
||||
async Task<TreeResponse> CreateTree(IDictionary<string,string> treeContents)
|
||||
async Task<TreeResponse> CreateTree(IEnumerable<KeyValuePair<string, string>> treeContents)
|
||||
{
|
||||
var collection = new List<NewTreeItem>();
|
||||
|
||||
|
||||
@@ -11,5 +11,6 @@ namespace Octokit
|
||||
public Signature Committer { get; set; }
|
||||
public GitReference Tree { get; set; }
|
||||
public IEnumerable<GitReference> Parents { get; set; }
|
||||
public int CommentCount { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -44,7 +44,7 @@ namespace Octokit
|
||||
/// <summary>
|
||||
/// The line number in the file that was commented on.
|
||||
/// </summary>
|
||||
public int Line { get; set; }
|
||||
public int? Line { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The commit
|
||||
|
||||
Reference in New Issue
Block a user